Giter VIP home page Giter VIP logo

Comments (10)

ApelSYN avatar ApelSYN commented on July 25, 2024

Не совсем понятен ваш вопрос.

from nomeroff-net.

kekonaut avatar kekonaut commented on July 25, 2024

Хочу проверить работу обученных ocr на фотографиях, которые содержат только номер( обрезанные)
Понимаю,что это возможно сделать, но можно ли как-то вытащить из демо только работу ocr на фотографиях, без детектирования объектов на ней. Т.к. насколько я понимаю, сначала в демо детектируются объекты : машины, номера. А потом только применяется ocr
спасибо!

from nomeroff-net.

ApelSYN avatar ApelSYN commented on July 25, 2024

Возмите скрипт для тренировки и положите примеры с описанием в папку test. Вместо тренировки загрузите модель

model = ocrTextDetector.load("/var/www/nomeroff-net/NomeroffNet/mcm/models/TextDetector/ru/anpr_ocr_ru_3-cpu.h5")

Потом запустите

ocrTextDetector.test(verbose=True)

Там вам покажет что распознается неправильно.

from nomeroff-net.

kekonaut avatar kekonaut commented on July 25, 2024

Спасибо большое за ответ!
Да, но тогда у меня выдается та же ошибка, что и при обучении через ipynb
AttributeError: 'ru' object has no attribute 'tiger_test'
Пыталась исправить это ошибку, скопировав tiger_test из функции prepare в функцию test. Но мне кажется, что этот костыль только провоцирует будущие ошибки( но эта ошибка исчезает)
Вероятно, у меня что-то не так импортируется. Думала изначально, что это ошибка импортов, присущая формату ipynb
изначально хочется именно проверять фотографию без описания: использовать уже обученную модель, чтобы облегчить разметку новых данных
Вероятно, можно так сделать, просто не написав аннотации к этим файлам, тогда в графе True не будет выводиться ничего. Правильно ли понимаю это?

from nomeroff-net.

GalymzhanAbdimanap avatar GalymzhanAbdimanap commented on July 25, 2024

Попробуйте так

from NomeroffNet import  TextDetector
import matplotlib.pyplot as plt


#Initialize text detector.
textDetector = TextDetector.get_static_module("ru")()
textDetector.load("latest")

zones=plt.imread('number_plate.jpg')

textArr = textDetector.predict([zones])
#textArr = textPostprocessing(textArr)
print(textArr)

from nomeroff-net.

kekonaut avatar kekonaut commented on July 25, 2024

Спасибо!

from nomeroff-net.

kekonaut avatar kekonaut commented on July 25, 2024

А возможно ли вырезать номера из картинок, где присутствует только номер на каком-либо фоне, а не машина целиком?
Пыталась использовать такие фото для модели. Она не распознает на них номера

from nomeroff-net.

GalymzhanAbdimanap avatar GalymzhanAbdimanap commented on July 25, 2024

Сделайте так

import os
import numpy as np
import sys
import matplotlib.image as mpimg
import cv2
import glob
from datetime import datetime
#change this property
NOMEROFF_NET_DIR = os.path.abspath('../../')

#specify the path to Mask_RCNN if you placed it outside Nomeroff-net project
MASK_RCNN_DIR = os.path.join(NOMEROFF_NET_DIR, 'Mask_RCNN')
MASK_RCNN_LOG_DIR = os.path.join(NOMEROFF_NET_DIR, 'logs')

#sys.path.append(NOMEROFF_NET_DIR)

#Import license plate recognition tools.
from NomeroffNet import  filters, RectDetector, TextDetector, OptionsDetector, Detector, textPostprocessing, textPostprocessingAsync
#from OptionsDetector import OptionsDetector

#Initialize npdetector with default configuration file.
nnet = Detector(MASK_RCNN_DIR, MASK_RCNN_LOG_DIR)
nnet.loadModel("latest")

rectDetector = RectDetector()

optionsDetector = OptionsDetector()
optionsDetector.load("latest")

#Initialize text detector.
textDetector = TextDetector.get_static_module("kz")()
textDetector.load("latest")



images = glob.glob('images500/*.jpg')

for img_path in images:
    img = cv2.imread(img_path)
    #img = [img]
    #Detect numberplate
    NP = nnet.detect([img])
    #Generate image mask.
    cv_img_masks = filters.cv_img_mask(NP)
    photo_time = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S")
    arrPoints = rectDetector.detect(cv_img_masks)
    zones = rectDetector.get_cv_zonesBGR(img, arrPoints)
    regionIds, stateIds, countLines = optionsDetector.predict(zones)
    regionNames = optionsDetector.getRegionLabels(regionIds)
    #print("CL: "+str(countLines))
    textArr = textDetector.predict(zones, countLines)
    textArr = textPostprocessing(textArr, regionNames)
    #print(textArr)
    print(img_path)
    if len(zones)>0:
        cv2.imwrite("number_plates/car"+str(photo_time)+'-'+str(textArr[0]+'.jpg'), zones[0]) 
    else:
        continue

from nomeroff-net.

GalymzhanAbdimanap avatar GalymzhanAbdimanap commented on July 25, 2024

Если не ошибаюсь номер должен составлять не более 10% изображения, проверьте сколько процентов от изображения составляет номер.

from nomeroff-net.

ApelSYN avatar ApelSYN commented on July 25, 2024

А возможно ли вырезать номера из картинок, где присутствует только номер на каком-либо фоне, а не машина целиком?
Пыталась использовать такие фото для модели. Она не распознает на них номера

Мы натренировали Mask RCNN модель под нужды сайта AUTO.RIA.com, наши пользователи не фотографируют крупным планом номер, а, обычно, автомобиль на котором (в том числе) видно номер, поэтому наилучшый выход из ситуации, натренировать свою модель.

Вы можете внимательно изучить мои статьи на хабре и вот этот скрипт, с помощью которого можно создать свою модель, которая сможет искать по вашему датасету.

Для этого нужно разметить хотя бы 300 фото (а лучше около 1000) из вашего датасета, можете дотренировать нашу модель с этими данными или дотренировать coco-датасет (в конфиг в параметр "WEIGHTS" пишем значение "coco"), после этого подключите созданую вами модель и все будет находить.

from nomeroff-net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.