sahilsid / CAPG-GAN

4 stars 1 forks source link

color problem with output image #2

Open XinMiaoWang opened 2 years ago

XinMiaoWang commented 2 years ago

Do you know why the picture output by Generator is 3 channel but it is either all red or all green instead of color. Thanks

hui-vigil commented 2 years ago

哥们跑出实验结果了吗

XinMiaoWang commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

hui-vigil commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

我还没有做出来,打算用Pytorch做一下

hui-vigil commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

XinMiaoWang commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

我認為這一步是沒問題的,這個mask是用來存facial landmark,圖片是黑白的,白色的點代表facial landmark,所以維度128X128X1我覺得是OK的

hui-vigil commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

我認為這一步是沒問題的,這個mask是用來存facial landmark,圖片是黑白的,白色的點代表facial landmark,所以維度128X128X1我覺得是OK的

但是他这里是不是少了一个维度呢,比如应该是(128 x 128 x 1)3维,但是这里是(128 x 128)2维,我也不是很了解,刚接触这些知识

XinMiaoWang commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

我認為這一步是沒問題的,這個mask是用來存facial landmark,圖片是黑白的,白色的點代表facial landmark,所以維度128X128X1我覺得是OK的

但是他这里是不是少了一个维度呢,比如应该是(128 x 128 x 1)3维,但是这里是(128 x 128)2维,我也不是很了解,刚接触这些知识

frontal_face[:,:,0]這個是三維的沒錯 (128x128x1)

frontal_face = cv2.cvtColor(cv2.imread(frontal_face_path),cv2.COLOR_BGR2RGB) 圖片剛讀進來的時候frontal_face是128x128x3 (128x128 pixel是圖片大小,3是代表RGB三個channel的彩色圖)

frontal_face[:, :, 0],總共三個維度, 「:」意思是取該維度所有pixel,所以前兩個維度128 pixel都全取,而第三個維度的「0」代表只取一個channel(灰階圖),於是組成128 x 128 x 1

hui-vigil commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

我認為這一步是沒問題的,這個mask是用來存facial landmark,圖片是黑白的,白色的點代表facial landmark,所以維度128X128X1我覺得是OK的

但是他这里是不是少了一个维度呢,比如应该是(128 x 128 x 1)3维,但是这里是(128 x 128)2维,我也不是很了解,刚接触这些知识

frontal_face[:,:,0]這個是三維的沒錯 (128x128x1)

frontal_face = cv2.cvtColor(cv2.imread(frontal_face_path),cv2.COLOR_BGR2RGB) 圖片剛讀進來的時候frontal_face是128x128x3 (128x128 pixel是圖片大小,3是代表RGB三個channel的彩色圖)

frontal_face[:, :, 0],總共三個維度, 「:」意思是取該維度所有pixel,所以前兩個維度128 pixel都全取,而第三個維度的「0」代表只取一個channel(灰階圖),於是組成128 x 128 x 1

对,我理解你的意思,但是我拿一张图片测试的时候,输出的mask形状是(128,128),是二维的,如果只有一个通道,形状不应该是(1, 128, 128)(pytorch的格式)或者(128, 128, 1)这样吗,这个地方我有点疑惑

XinMiaoWang commented 2 years ago

哥们跑出实验结果了吗

還沒呢,你有遇到顏色的問題嗎

你看一下提取姿态嵌入的那一步,是不是没有增加维度? frontal_mask = 1.0*np.zeros_like(frontal_face[:,:,0]) # 128 x 128

            for x,y in frontal_landmark['keypoints'].values():
                frontal_mask[x,y] = 1.0

            frontal_mask = gaussian_filter(frontal_mask,sigma=2)  # 128 x 128

我不知道是不是这里的mask没有增加一个维度呢,是不是shape=(128,128)

我認為這一步是沒問題的,這個mask是用來存facial landmark,圖片是黑白的,白色的點代表facial landmark,所以維度128X128X1我覺得是OK的

但是他这里是不是少了一个维度呢,比如应该是(128 x 128 x 1)3维,但是这里是(128 x 128)2维,我也不是很了解,刚接触这些知识

frontal_face[:,:,0]這個是三維的沒錯 (128x128x1) frontal_face = cv2.cvtColor(cv2.imread(frontal_face_path),cv2.COLOR_BGR2RGB) 圖片剛讀進來的時候frontal_face是128x128x3 (128x128 pixel是圖片大小,3是代表RGB三個channel的彩色圖) frontal_face[:, :, 0],總共三個維度, 「:」意思是取該維度所有pixel,所以前兩個維度128 pixel都全取,而第三個維度的「0」代表只取一個channel(灰階圖),於是組成128 x 128 x 1

对,我理解你的意思,但是我拿一张图片测试的时候,输出的mask形状是(128,128),是二维的,如果只有一个通道,形状不应该是(1, 128, 128)(pytorch的格式)或者(128, 128, 1)这样吗,这个地方我有点疑惑

呀!看了下,print出來shape的確是二維的,print出整個資料也是二維的OAO!! 我猜這裡2維mask應該是想存臉部特徵點而已,後面存圖片的時候有用到cmap=cm.gray,所以可以看到存出來的圖片是灰階圖。

def generate_from_dirs() 這個function在讀圖片的時候,也會把那些msak轉成灰階,所以frontal_face[:,:,0]雖然是2維的,不過我覺得不影響後面的處理。