简体   繁体   中英

TensorFlow Binary Classification

I'm trying to make a simple binary image classification with TensorFlow, but the results are just all over the place.

The classifier is supposed to check whether my gate is open or closed. I already have some python scripts to rotate and crop the images to eliminate the surroundings, with an image size of 130w*705h.

Images are below. I know I must be doing something totally wrong, because the images are almost night and day of a difference, yet it still gives completely random results. Any tips? Is there a simpler library or maybe a cloud service I could use for this if TF is too complicated?

Any help is appreciated, thanks!

Gate Closed在此处输入图像描述

Gate Open在此处输入图像描述

Just compute the average grey value of your images and define a threshold. If you want something more sophisticated compute average gradients or something like that. Your problem seems far too simple to use TF or CV.

After taking into consideration Martin's Answer , I decided to go with average grays after some filtering and edge detection.

I think it will work great for my case, thanks!

Some code:

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

Average Grays after filtering: 过滤后的平均灰度

Filtering steps: 过滤器

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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