TensorFlow 二进制分类
TensorFlow Binary Classification
我正在尝试使用 TensorFlow 进行简单的二值图像分类,但结果到处都是。
分类器应该检查我的门是打开还是关闭。我已经有一些python脚本来旋转和裁剪图像以消除周围环境,图像大小为130w*705h。
图片如下。我知道我一定是做错了什么,因为图像几乎是白天和黑夜的不同,但它仍然给出完全随机的结果。有小费吗?如果 TF 太复杂,是否有更简单的库或云服务可供我使用?
感谢任何帮助,谢谢!
大门关闭
大门打开
只需计算图像的平均灰度值并定义阈值。如果你想要更复杂的计算平均梯度或类似的东西。您的问题似乎太简单了,无法使用 TF 或 CV。
考虑到后,我决定在一些过滤和边缘检测之后使用平均灰度。
我认为它很适合我的情况,谢谢!
一些代码:
import cv2
import os
import numpy as np
# https://medium.com/sicara/opencv-edge-detection-tutorial-7c3303f10788
inputPath = '/Users/axelsariel/Desktop/GateImages/Cropped/'
# subDir = 'Closed/'
subDir = 'Open/'
openImagesList = os.listdir(inputPath + subDir)
for image in openImagesList:
if not image.endswith('.JPG'):
openImagesList.remove(image)
index = 0
while True:
image = openImagesList[index]
img = cv2.imread(inputPath + subDir + image)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray,11)
grayFiltered = cv2.bilateralFilter(gray, 7, 50, 50)
edgesFiltered = cv2.Canny(grayFiltered, 80, 160)
images = np.hstack((gray, grayFiltered, edgesFiltered))
cv2.imshow(image, images)
key = cv2.waitKey()
if key == 3:
index += 1
elif key == 2:
index -= 1
elif key == ord('q'):
break
cv2.destroyAllWindows()
过滤后的平均灰度:
筛选步骤:
我正在尝试使用 TensorFlow 进行简单的二值图像分类,但结果到处都是。
分类器应该检查我的门是打开还是关闭。我已经有一些python脚本来旋转和裁剪图像以消除周围环境,图像大小为130w*705h。
图片如下。我知道我一定是做错了什么,因为图像几乎是白天和黑夜的不同,但它仍然给出完全随机的结果。有小费吗?如果 TF 太复杂,是否有更简单的库或云服务可供我使用?
感谢任何帮助,谢谢!
大门关闭
大门打开
只需计算图像的平均灰度值并定义阈值。如果你想要更复杂的计算平均梯度或类似的东西。您的问题似乎太简单了,无法使用 TF 或 CV。
考虑到
我认为它很适合我的情况,谢谢!
一些代码:
import cv2
import os
import numpy as np
# https://medium.com/sicara/opencv-edge-detection-tutorial-7c3303f10788
inputPath = '/Users/axelsariel/Desktop/GateImages/Cropped/'
# subDir = 'Closed/'
subDir = 'Open/'
openImagesList = os.listdir(inputPath + subDir)
for image in openImagesList:
if not image.endswith('.JPG'):
openImagesList.remove(image)
index = 0
while True:
image = openImagesList[index]
img = cv2.imread(inputPath + subDir + image)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray,11)
grayFiltered = cv2.bilateralFilter(gray, 7, 50, 50)
edgesFiltered = cv2.Canny(grayFiltered, 80, 160)
images = np.hstack((gray, grayFiltered, edgesFiltered))
cv2.imshow(image, images)
key = cv2.waitKey()
if key == 3:
index += 1
elif key == 2:
index -= 1
elif key == ord('q'):
break
cv2.destroyAllWindows()
过滤后的平均灰度:
筛选步骤: