繁体   English   中英

TensorFlow 二进制分类

[英]TensorFlow Binary Classification

我正在尝试使用 TensorFlow 进行简单的二进制图像分类,但结果到处都是。

分类器应该检查我的门是打开还是关闭。 我已经有一些 python 脚本来旋转和裁剪图像以消除周围环境,图像大小为 130w*705h。

图片如下。 我知道我一定做错了什么,因为图像几乎是白天和黑夜的差异,但它仍然给出完全随机的结果。 有小费吗? 如果 TF 太复杂,是否有一个更简单的库或者我可以使用的云服务?

任何帮助表示赞赏,谢谢!

大门已关闭在此处输入图像描述

门打开在此处输入图像描述

只需计算图像的平均灰度值并定义阈值。 如果你想要更复杂的计算平均梯度或类似的东西。 您的问题似乎太简单了,无法使用 TF 或 CV。

考虑到Martin 的回答后,我决定 go 经过一些过滤和边缘检测后具有平均灰度。

我认为这对我的情况很有用,谢谢!

一些代码:

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()

过滤后的平均灰度: 过滤后的平均灰度

过滤步骤: 过滤器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM