diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144144937.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144144937.jpg new file mode 100644 index 0000000..f906398 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144144937.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144222222.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144222222.jpg new file mode 100644 index 0000000..c93febe Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144222222.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144303840.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144303840.jpg new file mode 100644 index 0000000..d13f16e Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144303840.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144341882.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144341882.jpg new file mode 100644 index 0000000..4966050 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144341882.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144421259.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144421259.jpg new file mode 100644 index 0000000..104c2ea Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144421259.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144500393.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144500393.jpg new file mode 100644 index 0000000..b818786 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144500393.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144538968.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144538968.jpg new file mode 100644 index 0000000..60fc33f Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144538968.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144619387.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144619387.jpg new file mode 100644 index 0000000..025fd00 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144619387.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144814974.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144814974.jpg new file mode 100644 index 0000000..b514ffa Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144814974.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014144929890.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014144929890.jpg new file mode 100644 index 0000000..adc502d Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014144929890.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014145006232.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014145006232.jpg new file mode 100644 index 0000000..33cfdea Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014145006232.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014145045330.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014145045330.jpg new file mode 100644 index 0000000..e56e7a0 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014145045330.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014145128164.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014145128164.jpg new file mode 100644 index 0000000..708d41c Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014145128164.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014145244471.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014145244471.jpg new file mode 100644 index 0000000..a60bed2 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014145244471.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014145321687.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014145321687.jpg new file mode 100644 index 0000000..fcc5e84 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014145321687.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150210497.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150210497.jpg new file mode 100644 index 0000000..31a2a59 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150210497.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150246105.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150246105.jpg new file mode 100644 index 0000000..2f10e76 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150246105.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150325231.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150325231.jpg new file mode 100644 index 0000000..01a46c1 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150325231.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150406560.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150406560.jpg new file mode 100644 index 0000000..7af93e5 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150406560.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150444617.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150444617.jpg new file mode 100644 index 0000000..6ec7bee Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150444617.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_2025101415052359.jpg b/ailai_pc/results/result_192.168.0.234_01_2025101415052359.jpg new file mode 100644 index 0000000..a169500 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_2025101415052359.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150601333.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150601333.jpg new file mode 100644 index 0000000..6648d7b Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150601333.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150642365.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150642365.jpg new file mode 100644 index 0000000..2cbe2f7 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150642365.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150720686.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150720686.jpg new file mode 100644 index 0000000..341a2bb Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150720686.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014150918102.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014150918102.jpg new file mode 100644 index 0000000..f158af3 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014150918102.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_2025101415103290.jpg b/ailai_pc/results/result_192.168.0.234_01_2025101415103290.jpg new file mode 100644 index 0000000..5bcdaf0 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_2025101415103290.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_2025101415111060.jpg b/ailai_pc/results/result_192.168.0.234_01_2025101415111060.jpg new file mode 100644 index 0000000..1ce589e Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_2025101415111060.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014151150768.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014151150768.jpg new file mode 100644 index 0000000..e32c832 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014151150768.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014151232368.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014151232368.jpg new file mode 100644 index 0000000..dc27b3b Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014151232368.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014151311222.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014151311222.jpg new file mode 100644 index 0000000..426033e Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014151311222.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014151353357.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014151353357.jpg new file mode 100644 index 0000000..5a81598 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014151353357.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_202510141514352.jpg b/ailai_pc/results/result_192.168.0.234_01_202510141514352.jpg new file mode 100644 index 0000000..b44efac Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_202510141514352.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_2025101415152183.jpg b/ailai_pc/results/result_192.168.0.234_01_2025101415152183.jpg new file mode 100644 index 0000000..b388c51 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_2025101415152183.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014151922555.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014151922555.jpg new file mode 100644 index 0000000..d2a8de2 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014151922555.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153132629.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153132629.jpg new file mode 100644 index 0000000..ac67720 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153132629.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153215762.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153215762.jpg new file mode 100644 index 0000000..46a1da4 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153215762.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153257985.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153257985.jpg new file mode 100644 index 0000000..6aa3e5a Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153257985.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153338300.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153338300.jpg new file mode 100644 index 0000000..21c7fca Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153338300.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153420611.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153420611.jpg new file mode 100644 index 0000000..0f68d6b Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153420611.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153506692.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153506692.jpg new file mode 100644 index 0000000..16d9167 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153506692.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153632704.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153632704.jpg new file mode 100644 index 0000000..fab3619 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153632704.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153800800.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153800800.jpg new file mode 100644 index 0000000..8550933 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153800800.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153839977.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153839977.jpg new file mode 100644 index 0000000..adf2204 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153839977.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153918385.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153918385.jpg new file mode 100644 index 0000000..30a8a6e Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153918385.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014153957167.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014153957167.jpg new file mode 100644 index 0000000..6e7ae15 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014153957167.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014154037360.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014154037360.jpg new file mode 100644 index 0000000..aeac59a Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014154037360.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014154121106.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014154121106.jpg new file mode 100644 index 0000000..785fbf1 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014154121106.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014154203390.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014154203390.jpg new file mode 100644 index 0000000..3f16c0a Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014154203390.jpg differ diff --git a/ailai_pc/results/result_192.168.0.234_01_20251014154328204.jpg b/ailai_pc/results/result_192.168.0.234_01_20251014154328204.jpg new file mode 100644 index 0000000..3df29d6 Binary files /dev/null and b/ailai_pc/results/result_192.168.0.234_01_20251014154328204.jpg differ diff --git a/cls_main(框架完成rknn还没训练)/12.png b/cls_main(框架完成rknn还没训练)/12.png new file mode 100644 index 0000000..c1a7b46 Binary files /dev/null and b/cls_main(框架完成rknn还没训练)/12.png differ diff --git a/cls_main(框架完成rknn还没训练)/cls_inference.py b/cls_main(框架完成rknn还没训练)/cls_inference.py new file mode 100644 index 0000000..61b79f2 --- /dev/null +++ b/cls_main(框架完成rknn还没训练)/cls_inference.py @@ -0,0 +1,91 @@ +import cv2 +import numpy as np +import platform +from rknnlite.api import RKNNLite + +# ------------------- 全局变量 ------------------- +_global_rknn_instance = None + +labels = {0: '夹具未夹紧', 1: '夹具夹紧'} + +DEVICE_COMPATIBLE_NODE = '/proc/device-tree/compatible' + +def get_host(): + system = platform.system() + machine = platform.machine() + os_machine = system + '-' + machine + if os_machine == 'Linux-aarch64': + try: + with open(DEVICE_COMPATIBLE_NODE) as f: + device_compatible_str = f.read() + if 'rk3562' in device_compatible_str: + host = 'RK3562' + elif 'rk3576' in device_compatible_str: + host = 'RK3576' + elif 'rk3588' in device_compatible_str: + host = 'RK3588' + else: + host = 'RK3566_RK3568' + except IOError: + print('Read device node {} failed.'.format(DEVICE_COMPATIBLE_NODE)) + exit(-1) + else: + host = os_machine + return host + +# ------------------- 图像预处理 ------------------- +def preprocess(raw_image, target_size=(640, 640)): + img = cv2.resize(raw_image, target_size) + img = np.expand_dims(img, 0) # 添加 batch 维度 + return img + +# ------------------- RKNN 模型初始化 ------------------- +def init_rknn_model(model_path): + global _global_rknn_instance + if _global_rknn_instance is None: + rknn_lite = RKNNLite(verbose=False) + ret = rknn_lite.load_rknn(model_path) + if ret != 0: + print(f'[ERROR] Load model failed (code: {ret})') + exit(ret) + ret = rknn_lite.init_runtime(core_mask=RKNNLite.NPU_CORE_0) + if ret != 0: + print(f'[ERROR] Init runtime failed (code: {ret})') + exit(ret) + _global_rknn_instance = rknn_lite + print(f'[INFO] Model loaded successfully: {model_path}') + return _global_rknn_instance + +# ------------------- 推理 ------------------- +def yolov11_cls_inference(model_path, raw_image, target_size=(640, 640)): + """ + 返回:(class_id, boolean) + 类别 0 -> False + 类别 1 -> True + """ + img = preprocess(raw_image, target_size) + rknn = init_rknn_model(model_path) + outputs = rknn.inference([img]) + + # 获取类别 ID + output = outputs[0].reshape(-1) + class_id = int(np.argmax(output)) + bool_value = True if class_id == 1 else False + + return class_id, bool_value + +# ------------------- 测试 ------------------- +if __name__ == '__main__': + image_path = "12.png" + bgr_image = cv2.imread(image_path) + if bgr_image is None: + print(f"Failed to read image from {image_path}") + exit(-1) + + rgb_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2RGB) + class_id, bool_value = yolov11_cls_inference( + model_path="yolov11_cls.rknn", + raw_image=rgb_image, + target_size=(640, 640) + ) + print(f"类别ID: {class_id}, 布尔值: {bool_value}") diff --git a/cls_main(框架完成rknn还没训练)/readme.md b/cls_main(框架完成rknn还没训练)/readme.md new file mode 100644 index 0000000..8e4792b --- /dev/null +++ b/cls_main(框架完成rknn还没训练)/readme.md @@ -0,0 +1,48 @@ +# yolov11_cls_inference README + +## 概述 +该模块用于对米厂输入图像执行二分类推理,用于判断机械臂夹爪是否夹紧。 + +类别定义: + +0 → 夹具未夹紧 (False) +1 → 夹具夹紧 (True) + +rknn模型只加载一次,复用全局实例,提高推理效率。 + +## 调用示例 + +您可以直接调用 yolov11_cls_inference 函数,以便集成到其他项目中: + +示例 1: 测试仅获取单张图片的类别和布尔值 + +```bash +from yolov11_cls_inference import yolov11_cls_inference +import cv2 + +# 读取图像 +bgr_image = cv2.imread("11.jpg") +rgb_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2RGB) + +# 调用推理函数 +class_id, bool_value = yolov11_cls_inference( + model_path="yolov11_cls.rknn", + raw_image=rgb_image, + target_size=(640, 640) +) + +print(f"类别ID: {class_id}, 布尔值: {bool_value}") +``` + +示例 2: 直接在其他项目中集成使用 +```bash + +from yolov11_cls_inference import yolov11_cls_inference + +# raw_image 已经读取或处理好的图像 +class_id, bool_value = yolov11_cls_inference(model_path="yolov11_cls.rknn", raw_image=raw_image) +if bool_value: + print("夹具夹紧") +else: + print("夹具未夹紧") +``` diff --git a/cls_main(框架完成rknn还没训练)/yolov11_cls.rknn b/cls_main(框架完成rknn还没训练)/yolov11_cls.rknn new file mode 100644 index 0000000..eca9557 Binary files /dev/null and b/cls_main(框架完成rknn还没训练)/yolov11_cls.rknn differ