-
1 YOLO介绍YOLO(You Only Look Once)是一种流行的实时目标检测算法,以其高速和高精度著称。与传统的目标检测方法(如R-CNN系列)不同,YOLO将目标检测任务视为单一的回归问题,直接从图像像素中预测边界框和类别概率,实现了“端到端”的检测。 YOLO将输入图像划分为 S×S 的网格(例如7×7),每个网格负责预测多个边界框(Bounding Box)及其置信度(Confidence Score)和类别概率。边界框:包含框的中心坐标、宽高。置信度:反映框内是否存在目标以及预测的准确性。类别概率:使用Softmax预测框内物体的类别。 传统方法(如滑动窗口)需要多次扫描图像,而YOLO仅需“看一次”(You Only Look Once),通过卷积神经网络一次性输出所有检测结果,因此速度极快。 在昇腾(Ascend)平台上运行YOLO(You Only Look Once)目标检测算法具有重要的技术意义和商业价值,尤其在AI加速计算领域。昇腾是华为推出的高性能AI处理器(如Ascend 910/310),结合昇腾AI软件栈(CANN、MindSpore等),能够显著提升YOLO的推理和训练效率。以下是其核心意义:1. 高性能加速,满足实时性需求;2. 边缘到云的灵活部署;3. 软硬件协同优化。 2 系统环境安装 昇腾平台运行YOLO需要安装这些工具:1. Ascend-cann-toolkit_8.0.RC3_linux-aarch64,2. Ascend-cann-kernels-910b_8.0.RC3_linux-aarch64,3. mindspore=2.5.0,4. python=3.9, python3.9的环境的安装命令如下,python的版本号为3.10或者3.11会报错:conda create -n yolo20250705python3d9d8 python=3.9conda activate yolo20250705python3d9d8 下载CANN8.0相关工具的网址:https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.RC3.beta1;将下载得到的工具包传至服务器,然后安装;使用CANN=8.1或者8.2运行YOLO有可能会报错;安装CANN的命令如下:/tmp/Ascend-cann-toolkit_8.0.RC3_linux-aarch64.run --install/tmp/Ascend-cann-kernels-910b_8.0.RC3_linux-aarch64.run --devel 下载MindSpore的网址:cid:link_0;安装MindSpore的命令如下:pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/2.5.0/MindSpore/unified/aarch64/mindspore-2.5.0-cp39-cp39-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple 代码目录:/apply/yolo20250811/ 进入代码目录:cd /apply/yolo20250811安装环境包资源:pip install -r requirements.txt系统需要安装mesa-libGL工具包,不安装有时会报错:sudo yum install mesa-libGLpython环境需要安装这些工具包,不安装有时会报错;albumentations的版本号>=2.0会报错:pip install sympypip install tepip install albumentations==1.4.24 3 昇腾平台的YOLO的训练与推理训练命令;没有“--ms_mode 1”会报错:python train.py --epochs 600 --config ./configs/yolov11/yolov11-n.yaml --data_dir ./cache/data/coco --keep_checkpoint_max 1 --auto_accumulate True --per_batch_size 25 --weight ./cache/pretrain_ckpt/yolov11n.ckpt --ms_mode 1 推理命令:python ./demo/predict.py --config ./configs/yolov11/yolov11-n.yaml --weight ./cache/pretrain_ckpt/yolov11n.ckpt --image_path ./cache/data/coco/images/val2017/000000550691.jpg yolo训练日志: (yolo20250705python3d9d8) [root@bms-jp ascendyolo_run_for_v811_20250417a1]# python train.py --epochs 600 --config ./configs/yolov11/yolov11-n.yaml --data_dir ./cache/data/coco --keep_checkpoint_max 1 --auto_accumulate True --per_batch_size 25 --weight ./cache/pretrain_ckpt/yolov11n.ckpt --ms_mode 1/root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero. setattr(self, word, getattr(machar, word).flat[0])/root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero. return self._float_to_str(self.smallest_subnormal)/root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero. setattr(self, word, getattr(machar, word).flat[0])/root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero. return self._float_to_str(self.smallest_subnormal)2025-07-05 22:45:27,447 [INFO] parse_args:2025-07-05 22:45:27,447 [INFO] task detect2025-07-05 22:45:27,447 [INFO] device_target Ascend2025-07-05 22:45:27,447 [INFO] save_dir ./runs/2025.07.05-22.45.272025-07-05 22:45:27,447 [INFO] log_level INFO2025-07-05 22:45:27,447 [INFO] is_parallel False2025-07-05 22:45:27,447 [INFO] ms_mode 12025-07-05 22:45:27,447 [INFO] max_call_depth 20002025-07-05 22:45:27,447 [INFO] ms_amp_level O22025-07-05 22:45:27,447 [INFO] keep_loss_fp32 True2025-07-05 22:45:27,447 [INFO] anchor_base False2025-07-05 22:45:27,447 [INFO] ms_loss_scaler dynamic2025-07-05 22:45:27,447 [INFO] ms_loss_scaler_value 65536.02025-07-05 22:45:27,447 [INFO] ms_jit True2025-07-05 22:45:27,447 [INFO] ms_enable_graph_kernel False2025-07-05 22:45:27,447 [INFO] ms_datasink False2025-07-05 22:45:27,447 [INFO] overflow_still_update False2025-07-05 22:45:27,447 [INFO] clip_grad True2025-07-05 22:45:27,447 [INFO] clip_grad_value 10.02025-07-05 22:45:27,447 [INFO] ema True2025-07-05 22:45:27,447 [INFO] weight ./cache/pretrain_ckpt/yolov11n.ckpt2025-07-05 22:45:27,447 [INFO] ema_weight 2025-07-05 22:45:27,447 [INFO] freeze []2025-07-05 22:45:27,447 [INFO] epochs 6002025-07-05 22:45:27,447 [INFO] per_batch_size 252025-07-05 22:45:27,447 [INFO] img_size 6402025-07-05 22:45:27,447 [INFO] nbs 642025-07-05 22:45:27,447 [INFO] accumulate 3.02025-07-05 22:45:27,447 [INFO] auto_accumulate True2025-07-05 22:45:27,447 [INFO] log_interval 1002025-07-05 22:45:27,447 [INFO] single_cls False2025-07-05 22:45:27,447 [INFO] sync_bn False2025-07-05 22:45:27,447 [INFO] keep_checkpoint_max 12025-07-05 22:45:27,447 [INFO] run_eval False2025-07-05 22:45:27,447 [INFO] conf_thres 0.0012025-07-05 22:45:27,447 [INFO] iou_thres 0.72025-07-05 22:45:27,447 [INFO] conf_free True2025-07-05 22:45:27,447 [INFO] rect False2025-07-05 22:45:27,447 [INFO] nms_time_limit 20.02025-07-05 22:45:27,447 [INFO] recompute False2025-07-05 22:45:27,447 [INFO] recompute_layers 02025-07-05 22:45:27,447 [INFO] seed 22025-07-05 22:45:27,447 [INFO] summary True2025-07-05 22:45:27,447 [INFO] profiler False2025-07-05 22:45:27,447 [INFO] profiler_step_num 12025-07-05 22:45:27,447 [INFO] opencv_threads_num 02025-07-05 22:45:27,447 [INFO] strict_load True2025-07-05 22:45:27,447 [INFO] enable_modelarts False2025-07-05 22:45:27,447 [INFO] data_url 2025-07-05 22:45:27,447 [INFO] ckpt_url 2025-07-05 22:45:27,447 [INFO] multi_data_url 2025-07-05 22:45:27,447 [INFO] pretrain_url 2025-07-05 22:45:27,447 [INFO] train_url 2025-07-05 22:45:27,447 [INFO] data_dir ./cache/data/coco2025-07-05 22:45:27,447 [INFO] ckpt_dir /cache/pretrain_ckpt/2025-07-05 22:45:27,447 [INFO] data.dataset_name coco2025-07-05 22:45:27,447 [INFO] data.train_set /apply/yolo20250811/cache/data/coco/train2017.txt2025-07-05 22:45:27,447 [INFO] data.val_set /apply/yolo20250811/cache/data/coco/val2017.txt2025-07-05 22:45:27,447 [INFO] data.test_set /apply/yolo20250811/cache/data/coco/test-dev2017.txt2025-07-05 22:45:27,447 [INFO] data.nc 802025-07-05 22:45:27,447 [INFO] data.names ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush']2025-07-05 22:45:27,447 [INFO] train_transforms.stage_epochs [590, 10]2025-07-05 22:45:27,447 [INFO] train_transforms.trans_list [[{'func_name': 'mosaic', 'prob': 1.0}, {'func_name': 'copy_paste', 'prob': 0.1, 'sorted': True}, {'func_name': 'resample_segments'}, {'func_name': 'random_perspective', 'prob': 1.0, 'degrees': 0.0, 'translate': 0.1, 'scale': 0.5, 'shear': 0.0}, {'func_name': 'albumentations'}, {'func_name': 'hsv_augment', 'prob': 1.0, 'hgain': 0.015, 'sgain': 0.7, 'vgain': 0.4}, {'func_name': 'fliplr', 'prob': 0.5}, {'func_name': 'label_norm', 'xyxy2xywh_': True}, {'func_name': 'label_pad', 'padding_size': 160, 'padding_value': -1}, {'func_name': 'image_norm', 'scale': 255.0}, {'func_name': 'image_transpose', 'bgr2rgb': True, 'hwc2chw': True}], [{'func_name': 'letterbox', 'scaleup': True}, {'func_name': 'resample_segments'}, {'func_name': 'random_perspective', 'prob': 1.0, 'degrees': 0.0, 'translate': 0.1, 'scale': 0.5, 'shear': 0.0}, {'func_name': 'albumentations'}, {'func_name': 'hsv_augment', 'prob': 1.0, 'hgain': 0.015, 'sgain': 0.7, 'vgain': 0.4}, {'func_name': 'fliplr', 'prob': 0.5}, {'func_name': 'label_norm', 'xyxy2xywh_': True}, {'func_name': 'label_pad', 'padding_size': 160, 'padding_value': -1}, {'func_name': 'image_norm', 'scale': 255.0}, {'func_name': 'image_transpose', 'bgr2rgb': True, 'hwc2chw': True}]]2025-07-05 22:45:27,447 [INFO] data.test_transforms [{'func_name': 'letterbox', 'scaleup': False, 'only_image': True}, {'func_name': 'image_norm', 'scale': 255.0}, {'func_name': 'image_transpose', 'bgr2rgb': True, 'hwc2chw': True}]。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。[INFO] albumentations load success[WARNING] ME(50295:281473090502688,MainProcess):2025-07-05-22:46:03.231.109 [mindspore/run_check/_check_version.py:305] The version 7.6 used for compiling the custom operator does not match Ascend AI software package version 7.5 in the current environment......2025-07-05 22:47:15,474 [WARNING] Epoch 1/600, Step 1/2, accumulate: 3.0, this step grad overflow, drop. Loss scale adjust to 32768.02025-07-05 22:47:15,809 [WARNING] Epoch 1/600, Step 2/2, accumulate: 3.0, this step grad overflow, drop. Loss scale adjust to 16384.02025-07-05 22:47:16,184 [INFO] Epoch 1/600, Step 2/2, imgsize (640, 640), loss: 3.5250, lbox: 1.0629, lcls: 1.3194, dfl: 1.1426, cur_lr: 1.9966999388998374e-052025-07-05 22:47:17,505 [INFO] Epoch 1/600, Step 2/2, step time: 49088.29 ms2025-07-05 22:47:18,444 [INFO] Saving model to ./runs/2025.07.05-22.45.27/weights/yolov11-n-1_2.ckpt2025-07-05 22:47:18,444 [INFO] Epoch 1/600, epoch time: 1.65 min.2025-07-05 22:47:18,710 [WARNING] Epoch 2/600, Step 1/2, accumulate: 3.0, this step grad overflow, drop. Loss scale adjust to 8192.02025-07-05 22:47:19,024 [INFO] Epoch 2/600, Step 2/2, imgsize (640, 640), loss: 3.6963, lbox: 1.0847, lcls: 1.4422, dfl: 1.1694, cur_lr: 3.986799856647849e-052025-07-05 22:47:19,037 [INFO] Epoch 2/600, Step 2/2, step time: 296.27 ms2025-07-05 22:47:19,945 [INFO] Saving model to ./runs/2025.07.05-22.45.27/weights/yolov11-n-2_2.ckpt2025-07-05 22:47:19,946 [INFO] Epoch 2/600, epoch time: 0.03 min.2025-07-05 22:47:20,223 [WARNING] Epoch 3/600, Step 1/2, accumulate: 3.0, this step grad overflow, drop. Loss scale adjust to 4096.0 yolo推理日志: (yolo20250705python3d9d8) [root@bms-jp ascendyolo_run_for_v811_20250417a1]# python ./demo/predict.py --config ./configs/yolov11/yolov11-n.yaml --weight ./cache/pretrain_ckpt/yolov11n.ckpt --image_path ./cache/data/coco/images/val2017/000000550691.jpg /root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero. setattr(self, word, getattr(machar, word).flat[0]) /root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero. return self._float_to_str(self.smallest_subnormal) /root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for type is zero. setattr(self, word, getattr(machar, word).flat[0]) /root/miniconda3/envs/yolo20250705python3d9d8/lib/python3.9/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for type is zero. return self._float_to_str(self.smallest_subnormal) 2025-07-05 22:50:19,157 [WARNING] Parse Model, args: nearest, keep str type 2025-07-05 22:50:19,204 [WARNING] Parse Model, args: nearest, keep str type 2025-07-05 22:50:19,584 [INFO] number of network params, total: 2.639747M, trainable: 2.624064M [WARNING] ME(66771:281473260486688,MainProcess):2025-07-05-22:50:26.245.7 [mindspore/train/serialization.py:1956] For 'load_param_into_net', remove parameter prefix name: ema., continue to load. 2025-07-05 22:50:26,023 [INFO] Load checkpoint from [./cache/pretrain_ckpt/yolov11n.ckpt] success. .Warning: tiling offset out of range, index: 32 .Warning: tiling offset out of range, index: 32 .Warning: tiling offset out of range, index: 32 Warning: tiling offset out of range, index: 32 Warning: tiling offset out of range, index: 32 Warning: tiling offset out of range, index: 32 ..2025-07-05 22:51:27,507 [INFO] Predict result is: {'category_id': [6, 3, 3, 6, 6], 'bbox': [[194.125, 54.75, 243.875, 354.25], [115.25, 286.5, 82.25, 68.0], [442.0, 283.0, 24.0, 20.0], [3.25, 215.25, 160.75, 64.0], [3.875, 215.5, 159.875, 96.5]], 'score': [0.93115, 0.90283, 0.70898, 0.58154, 0.45508]} 2025-07-05 22:51:27,507 [INFO] Speed: 61360.0/11.5/61371.5 ms inference/NMS/total per 640x640 image at batch-size 1; 2025-07-05 22:51:27,507 [INFO] Detect a image success. 2025-07-05 22:51:27,516 [INFO] Infer completed. 4 总结 在昇腾(Ascend)平台上成功运行YOLO模型的训练和推理,通过CANN软件栈和MindSpore框架的深度适配,实现了高效的算子优化及硬件加速(如昇腾910B/310)。关键技术包括动态分片、混合精度训练和DVPP硬件预处理,显著提升了目标检测的推理性能。昇腾NPU在CV任务中的具有强大的竞争力。昇腾显卡在边缘计算、智能安防等场景的AI部署具有重要的产业意义。
-
中奖结果公示感谢各位小伙伴参与本次活动,本次活动获奖名单如下:请各位获奖的伙伴在6月9日之前点击此处填写收货地址,如逾期未填写视为弃奖。再次感谢各位小伙伴参与本次活动,欢迎关注华为云DTSE Tech Talk 技术直播更多活动~直播简介【直播主题】突破传统,AI在加速“孵化”你的数字人【直播时间】2023年6月8日 16:30-18:00【直播专家】季鹏磊 华为云媒体DTSE技术布道师【直播简介】虚拟数字人一直是业界的热点研究问题,广泛应用在营销、直播、AR、VR等场景中。而传统的数字人制作流程非常依赖于美术人员,制作周期长、成本高、生产效率低。本次分享主要介绍华为云数字内容生产线MetaStudio中的数字人制作管线背后的一些关键技术,利用计算机视觉和图形学等技术,来提升数字人模型制作和动画制作的效率,具体包括高精度三维人脸重建、个性化人脸自动绑定、实时面部表情捕捉等技术,最后介绍一下基于隐式表示的数字人建模和驱动相关前沿技术和应用前景。直播链接:cid:link_2活动介绍【互动方式】直播前您可以在本帖留下您疑惑的问题,专家会在直播时为您解答。直播后您可以继续在本帖留言,与专家互动交流。我们会在全部活动结束后对参与互动的用户进行评选。【活动时间】即日起—2023年6月8日【奖励说明】评奖规则:活动1:直播期间在直播间提出与直播内容相关的问题,对专家评选为优质问题的开发者进行奖励。奖品:华为云定制长袖卫衣活动2:在本帖提出与直播内容相关的问题,由专家在所有互动贴中选出最优问题贴的开发者进行奖励。奖品:华为云定制Polo衫更多直播活动直播互动有礼:官网直播间发口令“华为云 DTSE”抽华为云定制棒球帽、填写问卷抽华为云定制双肩包等好礼。分享问卷有礼 :邀请5位朋友以上完成问卷即可获得华为云定制飞盘。戳我填问卷》》老观众专属福利:连续报名并观看DTT直播3期以上抽送华为云DTT定制T恤。【注意事项】1、所有参与活动的问题,如发现为复用他人内容,则取消获奖资格。2、为保证您顺利领取活动奖品,请您在活动公示奖项后2个工作日内私信提前填写奖品收货信息,如您没有填写,视为自动放弃奖励。3、活动奖项公示时间截止2023年6月9日,如未反馈邮寄信息视为弃奖。本次活动奖品将于奖项公示后30个工作日内统一发出,请您耐心等待。4、活动期间同类子活动每个ID(同一姓名/电话/收货地址)只能获奖一次,若重复则中奖资格顺延至下一位合格开发者,仅一次顺延。5、如活动奖品出现没有库存的情况,华为云工作人员将会替换等价值的奖品,获奖者不同意此规则视为放弃奖品。6、其他事宜请参考【华为云社区常规活动规则】。
-
当前用的Ascend310,官方YOLOV5S推理时间约380毫秒,SIGMOD函数已被替换,性能上没有明显提升,文档中说的算力为60TOPS,这个时间严重超时,理论上时间应该在3.5毫秒左右,实际上相差了两个数量级,还没有8核CPU推理的速度快,希望提供明确的解决方案
-
不同帧工作台的数量会变吗?还是从初始化开始就固定数量了?
-
本文主要介绍说明XQ6657Z35-EVM评估板Cameralink回环例程的功能、使用步骤以及各个例程的运行效果。(基于TI KeyStone架构C6000系列TMS320C6657双核C66x 定点/浮点DSP以及Xilinx Zynq-7000系列SoC处理器XC7Z035-2FFG676I设计的异构多核评估板,由核心板与评估底板组成。评估板CameraLink功能支持2路Base输入、或者2路Base输出、或者1路Full 输入或输出)ZYNQ7035 PL Cameralink回环例程1.1.1 例程位置ZYNQ例程保存在资料盘中的Demo\ZYNQ\PL\base_cameralink_loop\prj文件夹下。1.1.2 功能简介Cameralink回环例程将J3、J4当作两个独立的Base Cameralink接口使用,一个接收,另一个发送。Cameralink接收端,利用Xilinx ISERDESE2原语进行串/并转换,将LVDS串行数据转换成28bit的cameralink并行数据。解串后的并行数据通过ila进行在线分析和查看,并实时检测并行数据是否有误码。Cameralink发送端,利用Xilinx OSERDESE2原语进行并/串转换,将本地28bit cameralink并行数据串行化为LVDS数据发送出去。1.1.3 Cameralink接口时序说明1.1.3.1 Cameralink三种配置模式Base模式:只需一根Cameralink线缆;4对差分数据、1对差分时钟;Medium模式:需要两根Cameralink线缆;8对差分数据、2对差分时钟;Full模式:需要两根Cameralink线缆;12对差分数据、3对差分时钟。各种模式下,统一都包含一组控制口和一组串口。控制口有4根信号,用于图像采集端对相机的IO控制;串口用于图像采集端对相机参数的配置。1.1.3.2 单路差分数据与时钟之间时序关系单路Cameralink差分数据与随路的差分像素时钟之间的时序关系如下图所示:一个时钟周期内传输7bits串行数据,首先传输串行数据的最高位,最后传输串行数据的最低位。7bits数据起始于像素时钟高电平的中间位置,即数据的最高位在Clock高电平的中间时刻开始传输。Clock高电平时间比Clock低电平时间多一个bit位。1.1.3.3 通道传输数据与图像数据映射关系1路差分数据通道上,一个Clock像素时钟周期传输7bits串行数据,那么4路差分数据通道总共就是4*7bits=28bits,我们称这28bits数据为并行数据,为了方便描述,这28bits数据记为TX/RX27~0。Cameralink Base模式下,这28bits数据与图像行/场同步/数据有效标记、图像数据的映射关系如下图所示:TX/RX24映射为行同步标记LVAL,TX/RX25映射为场同步标记FVAL,TX/RX26映射为图像数据有效标记DVAL,TX/RX23未使用,其余位对应图像数据。1.1.3.4 28位并行数据与4路差分数据传输通道之间的映射关系上述28位并行数据是如何通过4路差分数据传输通道进行传输的呢?28位并行数据映射到4路差分数据传输通道各个时刻点的位置关系如下图所示:1.1.4 管脚约束ZYNQ PL工程管脚约束如下图所示:1.1.5 例程使用1.1.5.1 连接Cameralink线缆使用Cameralink线缆将J3、J4两个接口连接在一起:1.1.5.2 加载运行ZYNQ程序1.1.5.2.1 打开Vivado工程打开Vivado示例工程:工程打开后界面如下图所示:1.1.5.2.2 下载ZYNQ PL程序下载bit流文件base_cameralink_loop.bit,并且配套base_cameralink_loop.ltx调试文件,如下图下载界面所示:1.1.5.3 运行结果说明ZYNQ PL端提供的ILA调试窗口,可以实时抓取采集Cameralink并行信号以及错误检测信号的时序波形。hw_ila_1调试界面抓取Cameralink并行发送数据,是一个28bits的累加数:hw_ila_2调试界面抓取Cameralink并行接收数据、接收误码统计以及接收误码实时标识信号,如下图所示:cameralink_rx_err_num显示有数值,则说明Cameralink接收过程中存在误码。可能在开始通信初始化期间存在误码现象,导致cameralink_rx_err_num误码统计累加。待程序下载完毕后,如果Cameralink通信正常的话,cameralink_rx_err_num误码统计应该不会再累加。如果cameralink_rx_err_num误码统计继续不断累加,则通过触发camera_rx_error信号可以捕捉到误码具体发生时刻。1.1.5.4 退出实验Vivado调试界面Hardware Manager窗口,右键单击localhost(1),在弹出的菜单中点击Close Server,断开ZYNQ JTAG仿真器与板卡的连接:最后,关闭板卡电源,结束。
-
请问TE20有个接口是获取主流视频源的,这是获取视频流的接口吗经过测试返回的数据是空,技术客服说是TE20不支持获取视频流。那这个接口的意义是什么
-
我的om模型输入图像格式要求是RGB格式,并使用到了resize成指定大小,在使用华为mdc300时,框架提供的HafimageResize接口函数,文档上说明输出图像格式仅支持HAF_IMAGE_YUV420SP_NV12_UINT8。另外提供的Hafimagecvtcolor接口也是输出图像格式仅支持HAF_IMAGE_YUV420SP_NV12_UINT8。请问有解决方法吗,自己想的是:1.经过打印imagetype,摄像头读入的图像格式是RGB_uint8,调用HafimageResize函数,转成自己需要的尺寸大小,但是现在图像格式变为HAF_IMAGE_YUV420SP_NV12_UINT8,所以自己写YUV420转RGB的代码?2.不使用提供的接口,自己写resize的代码3.其他方法
-
有没有哪位大佬知道,如何利用板子和摄像头(USB)搭建一下视觉检测系统,完成一些视觉的东西,比如拍照,人脸识别,图像识别等等
-
模型选择Swin-Transformer 线上分数57+,主要受限于尺度EfficientNet-b0 线上分数59+ConvNeXt-tiny 表现最优,作为我们的最终选择以上三个系列模型,在绝大多数视觉任务上的表现都十分优秀。对于本次竞赛,输入分辨率很大程度影响模型的精度,但是线上环境限制了推理时间,经过大量实验ConvNeXt 表现最优。对于线上/线下不一致的思考该比赛的线下验证和线上测试的GAP较大(20~30个点),因此怀疑两个原因:线上测试集添加了对抗样本线上测试集的整体分布和线下数据差异较大线上测试集里面大部分都是hard sample
-
非常感谢!!!金域医学联合华为举办这场《2022“域见杯”医检人工智能开发者大赛》疯狂比赛的那段时光,现在还历历在目,“疯狂”,“废寝忘食”,“彻夜难眠”,用这几个词形容一点都不为过通过比赛即可以在自己的专业方向和高水平的团队巅峰对决,弥补自己再专业方向不足之处,又可以获得一份荣誉和现金奖励作为一个即将毕业的研究生,这是求职很好的敲门砖,为能进更好的企业做铺垫接下来是经验分享,有兴趣的童鞋,可以看看,谢谢捧场!!!竞赛题目:本赛题任务是对DCCL宫颈深部细胞学病变(Deep Cervical Cytological Lesions)图像数据库中的7种细胞分为4个类别(NILM、ASC-US&LSIL、ASC-H&HSIL、SCC&AdC,见“数据说明”部分)进行分类。赛题数据: 数据集包含 8619 张宫颈细胞学图片,图片中总共包含7种细胞,其基本信息如下图所示。同时数据包含多种分辨率:2118*1270、4000*2400等。 当前图像分类模型的研究多针对特征明显的单一尺度数据,此次比赛的数据属于弱特征多尺度数据解题思路: 探索性数据分析:整体方案:传统宫颈深部细胞学病变分类方法多基于手工提取特征进行分类模型构建,本次比赛的数据属于弱特征多尺度数据,手工提取特征困难。本方法采用了基于ConvNeXt和多种数据增强的基本思路,其在免除大规模特征工程的同时具有准确率高、鲁棒性强的特点研究难点(结合具体数据集)1.训练数据特征较弱(抗干扰);2.AB数据集尺度不同(适应性);3.模型预测准确有效(准确性)。数据预处理网络设计与训练数据预处理推理优化总结数据预处理数据预处
-
基于ConvNeXt的宫颈深部细胞学病变分类方法,以下是我们的经验分享
-
前言 大家好,我是“彩虹童子”赛队的队长,比赛前期曾用名“为人类医疗做贡献”,然后中期排名掉到后面了自觉我不配😀,于是换了“彩虹童子”的名字,出自最近在看的一本推理小说。 这次也是单人参赛,有幸拿下第一,在此做个简单的分享,我的GitHub主页:https://github.com/fire717, 欢迎多多交流、互相学习。 分享 首先是简单的赛题分析,给出的标签是4分类的类别标签,数据量略偏少。 然后做个简单的EDA,初步感受是第四类数量较少,可能存在数量不平衡的问题,右下角是前期模型计算的混淆矩阵,可以看出反而是前三类比较不好区分(当然跟第四类本身数量少有关系,只是说明数量不平衡没那么严重)。 尺寸整体比较平均,但是也分布在多个不同的尺寸。 接着就是建模了,中期尝试了回归、多标签的方案,其中多标签在a榜也取得了不错的成绩。 Why 回归:四种细胞其实对应了不同的疾病严重程度,单纯的多分类对每个类别是不做区分的,而实际意义上,正常和低级病变的类间距,应该要小于正常到癌变的类间距才是合理的; Why 多标签:这是细胞粒度的分类,但是标签确实图片粒度的,即同一张图上,可能存在正常、低级、高级、癌变四种细胞,但是只取最严重的癌变作为图片的标签,这样也就丢失了信息。 但是最后还是选择了普通的多分类方案,一是标签没有给出那么细的粒度,我尝试自己研究了下各类细胞特征,找了不少文档资料,但是发现还是比较难;二是为了方便优化,可能这就是所谓的大道至简吧。 然后就是一些常见的炼丹操作了。 之前不少比赛项目都尝试过冻结,这还是第一次涨点,我的认知是模型容量、复杂度和任务难度、数据量等都是需要相互匹配的,这个赛题数据量不多,且线上线下有巨大的gap,因此尝试了下冻结前面的conv层,效果还可以。 最后是喜闻乐见的消融实验环节,这里只有后四个是在b榜的真实分数,前面的都是根据a榜的分差换算到b榜的估计分数。 初赛的时候不知道复赛的内容,就在早期跑过一次全量数据,后面一直没用全量数据跑,复赛发现就加了200数据,于是自己换了全量数据训练就上去了。 感想 工作中主要从事智能安防领域,第一次参加医疗AI的项目,收获很多,也深觉这个方向有巨大的意义,感谢广州市科学技术局、金域医学以及华为云提供的这次机会,也希望有一天能看到医疗AI普惠到千万家庭中去。
-
赛题回顾以宫颈癌筛查为主题,提供近1万张辅以病理医生专业标注的宫颈细胞学图片。选手利用这些图片及标注开发人工智能分类算法,判断图片中细胞的病变程度,最后根据分类的准确程度进行排名。 有以下几个比赛要点:宫颈深部细胞学病变图像数据库中的7种细胞分为4个类别(NILM、ASC-US&LSIL、ASC-H&HSIL、SCC&AdC);以严重程度最高的病变细胞的类别作为该图片的标签;使用图片识别准确率(recognition accuracy)作为评价指标;基于ModelArts提交模型,限制1小时内完成推理;允许对数据进行额外标注(补充条款)。注意到第5条补充条款,主办方给的是分类的数据,但是允许额外标注,比如标注分割或者检测,则标签的粒度会更细,可转换为分割+分类,或者是检测+分类问题,理论上准确率会更高,有部分选手采用此方案,限于本人的非医学背景,放弃该方案。数据分析数据初探上图是官方给出的细胞类别,包括3大类的7种细胞:鳞状上皮内癌前病变细胞、癌症细胞和未见上皮内病变或恶性肿瘤的细胞; 根据病变程度合并相近的种类,最终得到4大类:NILM、ASC-US&LSIL、ASC-H&HSIL、SCC&AdC。观察4个类别图片,容易得出以下简单结论:细胞形态多样化,无法单纯依靠颜色进行区分;非专业人士很难进行检测框标注,额外标注使用目标检测的方案不现实;病变目标占比很小,不易区分。数量分布对训练数据进行统计通过观察数据分布,可以得出以下结论:类别分布不均衡,比例大致为5:9:4:1癌变细胞SCC&AdC数量最少,只有435张可能为长尾问题尺寸分布对于训练图片的大小,有以下结论:数据集中存在多种分辨率图片,且分辨率较大;数据集的图片宽高比集中,约为1.67。数据集特点总结存在多种分辨率的图片,图片比例几乎一致,宽:高=1.67;癌变细胞SCC&AdC数量相对较少,可能存在长尾问题;图片分辨率大,但是病变目标占比小,不易区分;细胞形态比较多,训练集总数只有8千多张;非专业人士无法进行额外标注。方案设计模型选择问题1:什么样的模型精度高且速度快?方案:从ImageNet的benchmark选取几个最优作为候选,实验后选择ConvNeX-T. 同颜色表示同家族模型,圆圈越大表示FLOPS越高,计算量越大;同等计算量下,ConvNeXt精度优于Swin和ViT;在比赛数据集上,相同输入大小和数据增强下,ConvNeXt的确优于Swin和ViT。经验:兼顾速度与精度,ImageNet上的表现依旧值得参考!问题2:更大的模型还是更大的输入?方案:同等计算量下,更大的输入提升更多,选择600x960的输入+ConvNeXt-T模型。 对于同一个模型,在不超时的情况下,输入越大越好!保持输入宽高比在1.67左右。数据增强问题3:如何通过数据增强提高泛化性?方案:RandomGridShuffle、Random Horizontal Flip、 Random Vertical Flip输入宽高比为1.6,近似于3:2,固选择水平方向平均切割3份,竖直方向平均切割2份,随机打乱后重组,概率为0.1;水平翻转,概率为0.5;垂直翻转,概率为0.5。RandomGridShuffle概率不应过大,否则会生成大量不合理的样本,产生副作用!尝试过的其它方案:Resize + RandomCrop,几乎无作用;Random Brightness,几乎无作用;ColorJitter,改变图像对比度,亮度,色彩等,分数下降较多。可能原因:RandomCrop 对数据多样性增加较少;该数据集的分类对颜色比较敏感,过度使用可能会产生不合理样本,导致学习错误特征。损失函数问题4:选用何种损失函数,是否加权解决长尾问题?方案:使用交叉熵(Cross Entropy),不加权。可能原因本数据集的长尾问题并不是非常严重,总体比例为5:9:4:1,没有数量级的差距;线下训练集的数据分布和线上测试集的数据分布不一致,导致加权参数不正确,没有起到作用。训练策略问题5:如何训练保证模型快速收敛且具有更高的精度?方案:经验参数+实验,训练方法很重要!LR:3e-4Warm up: exp for first 3 epochs优化器:AdamWBatch size: 24Scheduler: ConsineAnnealingEpochs: 30尝试过的其它策略:原图分辨率较大,通过将大图分割成小块,分别输入网络学习冻结部分模型参数,使用训练数据fine-tuningBatchMixup、BatchCutMix标签平滑Label Smooth训练框架使用mmclassification进行训练;数据预处理、数据增强、模型、损失函数、优化器等功能完备;配置文件模块化,不用修改训练代码,专注优化策略。线上推理使用对象存储提交模型包推理,提供customize_service.py、model、config.json,流程简单,安装依赖较慢;使用自定义Docker镜像方式,FastAPI封装http接口,提交自定义镜像,无需线上安装依赖,启动速度快。经验总结进行数据分析是一个良好开端,可以提取有用信息指导后续模型选择以及策略开发,做到有的放矢;站在巨人的肩膀上工作,开源数据集上的基准测试对模型选择有很大的参考意义,可以节省时间,快速决策;适合方为好,根据实际数据选择合适的数据增强,才能提高泛化性,一味堆砌只会失去方向,一次添加一种,大胆假设,小心求证;多总结业内通用做法,可以少走弯路,同一模型,采取不同的优化方法差异较大,不合适的训练策略可能让你与好模型失之交臂。展望人工智能与生物医学学科交叉人才稀少,限制了人工智能技术在生物医学领域的应用,本次医检人工智能大赛吸引更多人工智能人才加入医疗领域,推动了医检乃至医疗行业向智慧医疗迈进;金域医学深耕医检领域28年,拥有全国最多的专业病理医生团队,积累了千万级别的宫颈癌筛查数据,在业界有得天独厚的数据优势。希望下一届比赛可以共享更多数量、种类的标注数据,探索更加精准、场景更加广阔的行业应用;华为云的ModelArts是面向开发者的一站式AI开发平台,本次比赛提供了易用的部署推理服务,希望下一次比赛能体验端到端的人工智能模型开发流程,共同推动国产人工智能平台的发展。
-
在现代工业自动化生产中,涉及到各种各样的检验、生产监视及零件识别应用,例如零配件批量加工的尺寸检查,自动装配的完整性检查,电子装配线的元件自动定位,IC上的字符识别等。通常人眼无法连续、稳定地完成这些带有高度重复性和智能性的工作,其它物理量传感器也难有用武之地。由此人们开始考虑利用光电成像系统采集被控目标的图像,而后经计算机或专用的图像处理模块进行数字化处理,根据图像的像素分布、亮度和颜色等信息,来进行尺寸、形状、颜色等的判别。这样,就把计算机的快速性、可重复性,与人眼视觉的高度智能化和抽象能力相结合,由此产生了机器视觉的概念。一个成功的机器视觉系统是一个经过细致工程处理来满足一系列明确要求的系统。当这些要求完全确定后,这个系统就设计并建立来满足这些精确的要求。文章转自小白学视觉
-
据最新一次统计显示,截至 2019 年 11 月,全球圈养大熊猫种群数量为 600 只,野生大熊猫只有 1864 只。大熊猫因为生育率低、存活率低,曾面临濒危的险境。近年通过保护和救治,已经从濒危进入到易危名单。野外中,雌性大熊猫在四岁成年后,每年发情一次,每次只有短暂的 2-3 天。然而人工饲养的大熊猫,由于长期脱离野外环境,自然发情率本来就低,更别说在短短几天中,找到合适的雄性熊猫与其交配了。动物园和繁育中心,都希望能通过更好的人工繁育方式,提高大熊猫的生育繁殖率。近日,来自四川大学,四川省濒危野生动物保护生物学重点实验室,以及四川大熊猫科学院的研究人员,发表了一篇名为《基于音频的大熊猫自动配对成功预测》的论文,为解决这个问题带来了新的思路。通过声音,确定大熊猫发情状态 根据以往的资料表明,大熊猫在繁殖季节会有特殊的发声行为,这些声音之中,包含了一些重要的信息。比如个体发情的情况,对某异性的好感度等,这些信息会决定最后交配繁衍的成败。该项研究首次尝试了一种基于大熊猫声音的 AI 方法,通过模型来自动预测大熊猫交配成功率。研究中采用了语音情感识别(SER)技术,使用了深度神经网络来学习熊猫独特的发声特征,并定义和判断出发声的类型,再结合以往的数据,自动预测出两只熊猫交配成功的几率。具体的方法是:给定在繁殖过程中录制的大熊猫交配的音频序列,研究人员先将大熊猫的声音裁剪出小片段,然后对其大小和长度进行归一化。接下来,从音频片段中提取到的声学特征,输入到深度神经网络中,经过了训练的模型,将预测匹配是成功还是失败。通过比对结果,就能够得出:两只熊猫交配成功的几率。 用算法提高熊猫生育率在得到算法模型的预测结果后,大熊猫饲养者可以采取适当的后续行动,以提高整体的生育率,这对智能大熊猫育种带来了数据维度的有力帮助。研究人员将此方法,在过去九年的数据集上进行了评估实验,获得了和实际情况相符合的结果。同时证明了基于音频的自动交配成功预测方法,在协助大熊猫繁殖上,具有很大的潜力。研究的后续将继续扩大熊猫的声音数据内容,进一步验证了该方法的实际有效性。此外,研究团队还计划扩展该方法的维度,包括探索声音和视觉方面更细粒度的数据信息。 大熊猫:提高中国的「路人缘」 早在 1957 年,中国就将大熊猫「平平」和「碛碛」,按照「国礼」的形式赠送给前苏联政府和人民,开启了大熊猫外交的先河。1972 年,时任美国总统的尼克松访问中国,开启了中美两国的直接对话,在尼克松返回美国不久,中国就将一对熊猫作为礼物赠送给了美国。《华盛顿邮报》在当时破天荒地,使用了一连串象声词作为标题进行了报道——「Awwwwwwww,They’reCute 嗷嗷嗷嗷嗷嗷,它们太可爱了!」。截至 2018 年,中国与全球 12 个国家的 14 个动物园,建立了大熊猫长期合作研究关系,共有 40 只中国籍大熊猫生活在海外。憨态可掬的大熊猫,成为了全球的可爱担当,也化身成了中国的「友好大使」。相比于过去的纯粹观赏,近年通过中国与全球的研究机构,针对大熊猫开展的合作研究也变得越来越多。为了将这份可爱延续下去,保证它们良好的繁衍生育,就成了其中重要的环节。所以,好好学习神经网络,不仅能帮助大熊猫找到心仪的配偶,说不定还会给自己带来一段良缘呢。文章转自:小白学视觉
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签