VocĂȘ pode baixar o cĂłdigo na pĂĄgina do GitHub ( link )
Bem-vindo ao artigo sobre reconhecimento. Como passo a maior parte do meu tempo de trabalho em um escritĂłrio de espaço aberto, onde cada lugar Ă© numerado, decidi falar sobre a visĂŁo computacional usando o exemplo de uma placa regular com um nĂșmero de local de trabalho. Aqui, treinaremos novamente a rede neural para detectar a placa de nossa escolha.
Estou usando o python3.7 e os nomes de todos os mĂłdulos com versĂŁo estĂŁo armazenados no arquivo requirements.txt.
.
:
500 , â 100, 1000 , , 2.
/ . 80%, - 20%.
TF .
. config ( , ).
.
.
.
TensorFlow , , 1000 . , , . , , - .
, ().
. , . LabelImg- , GitHub , .
LabelImg, GUI. â dir , . create rectbox. , . , ! w, , ctrl+s, . 1 100 , , . , !
LabelImg xml-, . xml- TFRecords, TensorFlow. , , \test \train xml-.
, . , 20% XML- test, train.
, , TFRecords, TensorFlow.
-, image .xml csv-, . , : python xml_to_csv.py.
train_labels.csv test_labels.csv CSGO_images. cmd, .bat xml_to_csv.bat.
generate_tfrecord.py . , . labelmap.pbtxt.
, , generate_tfrecord.py:
# TO-DO label map
def class_text_to_int(row_label):
if row_label == 'table':
return 1
else:
return None
TFRecord, generate_tfrecord.bat.
train.record test.record training. .
, â . , , . labelmap.pbtxt CSGO_training. . , generate_tfrecord.py.
item {
id: 1
name: 'table'
}
, . , . .
TensorFlow research\ object_detection\ samples\ configs faster_rcnn_ inception_v2_ coco.config CSGO_training. . .config , , . 10. num_classes , . :
num_classes : 1
107. fine_tune_checkpoint :
fine_tune_checkpoint : "faster_rcnn_inception_v2_coco_2018_01_28 / model.ckpt"
122 124. train_input_reader input_path label_map_path :
input_path: "CSGO_images / train. record"
label_map_path: "CSGO_training / labelmap.pbtxt"
128. num_examples , CSGO_images\test. 113 , :
num_examples: 113
( )
136 138. eval_input_reader input_path label_map_path :
input_path: "CSGO_images / test. record"
label_map_path: "CSGO_training / labelmap.pbtxt"
. ! . .
, train.bat.
. . 1.5 . , 0,05, ( , ). , . , , .
.
, , â ( ). graph export_inference_graph.py, , âXXXXâ â model.ckpt-XXXX » .ckpt :
python export_inference_graph.py --input_type image_tensor --pipeline_config_path CSGO_training/faster_rcnn_inception_v2_coco.config --trained_checkpoint_prefix CSGO_training/model.ckpt-XXXX --output_directory CSGO_inference_graph
frozen_inference_graph.pb /coco_v3/ CSGO_inference_ graph. .pb . frozen_inference_graph.pb . coco_v3 predict.py 39 .
PATH_TO_FROZEN_GRAPH = 'graph/frozen_inference_graph.pb'
41 labelmap.
PATH_TO_LABELS = 'graph/labelmap.pbtxt'
Finalmente, antes de executar scripts Python, vocĂȘ precisa alterar a variĂĄvel NUM_CLASSES no script para igualar o nĂșmero de classes que queremos detectar. Eu sĂł uso 1 classe, entĂŁo mudei para 1:
NUM_CLASSES = 1
Na linha 65, vocĂȘ precisa definir a imagem na qual a detecção ocorrerĂĄ.
ApĂłs iniciar, vocĂȘ verĂĄ uma janela e uma placa reconhecida.
Isso é tudo, obrigado pela sua atenção.