copy from herb_ai.py
copy to openvino/herb_ai.py
Îļþ´Ó herb_ai.py ¸´ÖÆ |
| | |
| | | import multiprocessing |
| | | from safety_detect import SAFETY_DETECT |
| | | from identifier import IDENTIFIER |
| | | |
| | | import os |
| | | from logger_config import logger |
| | | import threading |
| | |
| | | |
| | | # è°ç¨å¦ä¸ä¸ªé¿ç¦éå¤´ï¼æææ¸
æ°çå±é¨è¯æå¾ç |
| | | def get_image(): |
| | | herb_identifier = IDENTIFIER("model/herb_identify.onnx") |
| | | herb_identifier = IDENTIFIER("./model/herb_id") |
| | | logger.info("è¯å«çº¿ç¨å¯å¨") |
| | | global is_loaded, class_count, class_count_max, class_sum |
| | | camera2_index = config['cam']['cam2'] |
| | |
| | | print("æå头å辨ç:", width, "x", height) |
| | | logger.info(f"æå头å辨ç:, {width}, x, {height}") |
| | | # ç®æ å¾å尺寸 |
| | | # 计æ¶å¨ |
| | | frame_count = 0 |
| | | start_time = time.time() |
| | | |
| | | stime = time.time() |
| | | if not os.path.exists(save_path): |
| | | os.makedirs(save_path) |
| | |
| | | |
| | | # 循ç¯è¯»åæå头ç»é¢ |
| | | while True: |
| | | logger.info("循ç¯è¯»åæå头ç»é¢") |
| | | start_time = time.time() |
| | | # ç¡ç 100æ¯«ç§ |
| | | time.sleep(config['cam']['sleep']) |
| | | ret, frame = cap.read() |
| | |
| | | |
| | | # å®å
¨æ£æµ |
| | | boxes, scores, class_ids = safety_detect(frame) |
| | | draw_img = safety_detect.draw_detections(frame, boxes, scores, class_ids) |
| | | draw_img = safety_detect.draw_detections(frame, class_ids, scores,boxes ) |
| | | |
| | | det_res = {} |
| | | if class_ids is not None: |
| | |
| | | # print(status) |
| | | |
| | | # 䏿æºä½ç½®è¯å« |
| | | probabilities2 = hoister_position(frame); |
| | | probabilities2 = hoister_position(frame) |
| | | predicted_class2 = np.argmax(probabilities2, axis=1)[0] |
| | | max_probability2 = np.max(probabilities2, axis=1)[0] |
| | | class_2 = hoister_position.class_names[predicted_class2] |
| | |
| | | logger.info("åé䏿æºä½ç½®è¯å«ç»æï¼"+str(class_feeder)) |
| | | l.send_msg(class_feeder) |
| | | # 计ç®å¸§éç |
| | | frame_count += 1 |
| | | end_time = time.time() |
| | | elapsed_time = end_time - start_time |
| | | fps = frame_count / elapsed_time |
| | | fps = (1 / (end_time - start_time)) |
| | | # print(f"FPS: {fps:.2f}") |
| | | # å°FPSç»å¶å¨å¾åä¸ |
| | | cv2.putText(draw_img, f"FPS: {fps:.2f}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, |
| | |
| | | # è·åå½åçªå£å¤§å° |
| | | width = cv2.getWindowImageRect("AICamera")[2] |
| | | height = cv2.getWindowImageRect("AICamera")[3] |
| | | # print("width", width, "height", height) |
| | | |
| | | # 妿heightå°äº1åèµå¼100 |
| | | if height < 1: |
| | | height = 100 |
| | | |
| | | # è°æ´å¾å大å°ä»¥éåºçªå£ |
| | | resized_frame = cv2.resize(draw_img, (width, height)) |
| | |
| | | ('cbData', ctypes.wintypes.DWORD), |
| | | ('lpData', ctypes.c_char_p) |
| | | ] |
| | | |
| | | |
| | | |
| | | # logging.info("åå¤å è½½å®å
¨æ£æµæ¨¡å..") |
| | | # print("åå¤å è½½å®å
¨æ£æµæ¨¡å..") |
| | | # model_safe = SAFETY_DETECT(config['model']['safe']) |
| | | # |
| | | # logging.info("å®å
¨æ£æµæ¨¡åå è½½æåã") |
| | | # print("å®å
¨æ£æµæ¨¡åå è½½æåã") |
| | | # logging.info("åå¤å è½½è¯æè¯å«æ¨¡å..") |
| | | # print("åå¤å è½½è¯æè¯å«æ¨¡å..") |
| | | # model_cls = HERB_IDENTIFY(config['model']['cls']) |
| | | # logging.info("è¯æè¯å«æ¨¡åå è½½æåã") |
| | | # print("è¯æè¯å«æ¨¡åå è½½æåã") |
| | | |
| | | |
| | | class Listener: |
| | | def __init__(self): |
| | |
| | | return 0 |
| | | |
| | | if __name__ == '__main__': |
| | | |
| | | |
| | | # 累计æ¯ç§è¯æä¸è®ºå次åºç°çæ¬¡æ° |
| | | class_count = {} |
| | | # 累计æ¯ç§è¯æç½®ä¿¡åº¦æé«çæ¬¡æ° |
| | |
| | | is_loaded = False |
| | | # å è½½ONNX模å |
| | | |
| | | load_identifier = IDENTIFIER("model/loading.onnx") |
| | | hoister_position = IDENTIFIER("model/hl.onnx") |
| | | safety_detect = SAFETY_DETECT("model/safety_det.onnx") |
| | | print("å 载模å===============") |
| | | load_identifier = IDENTIFIER("./model/load_id") |
| | | hoister_position = IDENTIFIER("./model/feeder_id") |
| | | safety_detect = SAFETY_DETECT("./model/safe_det") |
| | | config = read_config() |
| | | PCOPYDATASTRUCT = ctypes.POINTER(COPYDATASTRUCT) |
| | | |