Halcon 模糊圆边的找圆案例

Halcon 模糊圆边的找圆案例

基本思路

        1.将图像转成灰度图像

        2.再观察要找到的区域的灰度值变化,找到前景与背景的具体数值。

        3.根据找到的前景与背景的具体数值,增强图像对比度。(使图像变成黑白图片)

        4.使用灰度直图工具进行阈值分割,找到最佳的阈值

        5.使用connection算子进行区域分割。相连的区域联接,不相联的区域分离

        6.借助形状特征选择区域。新手可以使用特征直方图工具进行可视化的选择区域。

        7.可以对图像边缘进行一些简单的处理。

        8.获取选择区域的信息,如面积,坐标等信息

        9.根据已知的区域坐标信息,使用找圆工具进行处理,并获取圆区域的相关数据,如圆心坐标,轮廓等

 效果

原图

步骤分解

1.准备

*读图
read_image (OriImage, 'E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/标定相机找圆心和焊头修正相机找圆心之算法软件/标定相机找圆心和焊头修正相机找圆心之算法软件/03 标定相机找圆心/S2/1号机/2.bmp')
get_image_size (OriImage, Width, Height)
dev_open_window (0, 0, Width/5, Height/5, 'black', WindowHandle)

2.将图像转成灰度图像

*将图像转成灰度图像
rgb1_to_gray (OriImage, GrayImage1)

3.再观察要找到的区域的灰度值变化,找到前景与背景的具体数值。

观察到圆内的灰度值是4,圆外的值是65。

4.根据找到的前景与背景的具体数值,增强图像对比度。(使图像变成黑白图片)

*增强对比度
*输入原图像
*输出处理后的图像
*最小值
*最大值
Enhancement (GrayImage1, Image2, 5, 50)

效果

从图上看我们要找的圆的区域变黑了,这样特征就明显了。

5.使用灰度直图工具进行阈值分割,找到最佳的阈值

插入的代码

threshold (Image2, Regions, 0, 37)

6.使用connection算子进行区域分割。相连的区域联接,不相联的区域分离

connection(Regions, Seg)

7.借助形状特征选择区域。

        新手可以使用特征直方图工具进行可视化的选择区域。

*借助形状特征选择区域
        *Regions (输入参数)要检查的区域。
        *SelectedRegions (输出参数)满足条件的地区
        *Features 要检查的形状特征。        
        *Operation 个体特征的联动类型。默认值:'and' 值列表:'and', 'or'
        *Min 特征的下限或` min `。
        *Max 特征的上限或` max `。        
select_shape (Seg, selectHole, 'area', 'and', 620478, 1.30065e+006)

8.可以对图像边缘进行一些简单的处理。

*用圆形(3.5半径)结构元素【闭运算】
         closing_circle (selectHole, RegionDilation2, 4.5)

        9.获取选择区域的信息,如面积,坐标等信息

*区域和区域中心。
         *参数说明
         *Regions (input_object)  输入要检查(计算)的区域
         *Area (output_control)  输出面积
         *Row (output_control) 中心点的行坐标
         *Column (output_control) 中心点的列坐标
         area_center(RegionDilation2, sel_area, sel_row, sel_col)
         *设置显示的字体
         set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
         disp_message (WindowHandle, '匹配坐标:'+sel_row+','+sel_col, 'window', 20, 20, 'green', 'true')
         *显示十字中心
         disp_cross (WindowHandle, sel_row, sel_col, 50, 10)

        10.根据已知的区域坐标信息,使用找圆工具进行处理,并获取圆区域的相关数据,如圆心坐

tuple_sort_index(sel_area, SortIndex)
        
        if (|SortIndex| > 0)
            select_obj(selectHole, sel_last, SortIndex[0]+1)
            
            fill_up(sel_last, sel_last)
            region_to_bin(sel_last, BinImage, 0, 255,  Width, Height)
            
            MetchedRow := sel_row[SortIndex[0]]
            MatchedColumn := sel_col[SortIndex[0]]
            
            *二维测量精定位圆的位置
            MetrologyParamNames := ['measure_transition', 'measure_select', 'min_score']
            MetrologyParamValues := ['positive', 'first', '0.6']
            *添加找圆工具
            create_metrology_model (MetrologyHandle)   
            set_metrology_model_param (MetrologyHandle, 'camera_param', [])
            set_metrology_model_image_size (MetrologyHandle, Width, Height)
            add_metrology_object_circle_measure (MetrologyHandle, sel_row, sel_col, ModelROIRadius, 70, 1, 1, 30, [], [], Index)
            *返回图像坐标中选定的计量对象的轮廓。
*参数说明
*Contour (输入参数)模型轮廓
*MetrologyHandle (输入参数)计量模型的句柄
*Index 计量对象的索引
*Resolution 相邻轮廓点之间的距离
get_metrology_object_model_contour(Contour, MetrologyHandle, 'all', 1.5)
*获取测量区域和计量模型的计量对象的边缘位置结果
*参数说明
*Contour (输入参数)模型轮廓
*MetrologyHandle (输入参数)计量模型的句柄
*Index 计量对象的索引
*Transition 选择亮/暗 或 暗/亮边缘。ALL全部, negative(白到黑),positive(黑到白)
*Row 测量边的行坐标
*Column 测量边的列坐标
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row2, Column2)
            dev_set_color ('cyan')
            dev_display (Contours)
dev_display (Contour)
            apply_metrology_model (BinImage, MetrologyHandle)
            get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
            get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'radius', radius)
            *判断是否找圆成功
            if (|Parameter| > 0)
                ResultCenterRow := Parameter[0]
                ResultCenterColumn := Parameter[1]
                *获取圆的半径
                ResultRadius := Parameter[2]
                *为每个输入点生成一个十字形状的XLD轮廓。
                *gen_cross_contour_xld (Cross, Row2, Column2, 100, 0)
                *dev_set_color('red')
                *dev_display(Cross)
                *创建XLD轮廓对应于圆或圆弧。
                *gen_circle_contour_xld (ContCircle1, ResultCenterRow, ResultCenterColumn, ResultRadius, 0, 6.28318, 'positive', 1)
                *dev_set_color('green')
                *dev_display(ContCircle1)
                 *获取计量模型的测量结果
*参数说明:
*(输出参数)MetrologyHandle 处理计量模型
*index 
*Instance 
*GenParamName ‘result_type’:
*对于圆,返回值是中心的坐标和圆的半径。顺序分别是[‘row’,‘column’,‘radius’]或 [‘x’,‘y’,‘radius’]
*对于椭圆,返回值是中心的坐标,长轴’phi’的方向,较大半轴’radius1’的长度,以及椭圆的较小半轴’radius2’的长度。
*顺序分别是[‘row’,‘column’,‘phi’,‘radius1’,‘radius2’]或 [‘x’,‘y’,‘phi’,‘radius1’,‘radius2’]
*对于一条线,返回该线的起点和终点。顺序是[‘row_begin’,‘column_begin’,‘row_end’,‘column_end’]
*或 [‘x_begin’,‘y_begin’,‘x_end’,‘y_end’]
*对于矩形,返回值是中心的坐标,主轴’phi’的方向,较大的半边’length1’的长度,以及矩形的较小半边’length2’的长度。
*顺序分别是[‘row’,‘column’,‘phi’,‘length1’,‘length2’]或 [‘x’,‘y’,‘phi’,‘length1’,‘length2’]
*GenParamValue
*Parameter
get_metrology_object_result(MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
*查询计量对象的结果轮廓
*参数说明
*Contour (输入参数)给定计量对象的结果轮廓
*MetrologyHandle (输入参数)计量模型的句柄
*Index (输入参数)计量对象的索引,想要第几个结果轮廓
*Instance 输入参数)计量对象的实例
*Resolution 相邻轮廓点之间的距离
get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', 'all', 1.5)
*fill_up(Contour1, Contour1circle)
dev_set_line_width(3)
dev_set_color('green')
dev_display(Contour1)

disp_message (WindowHandle, '圆中心坐标:X:'+Parameter[0]+',Y:'+Parameter[1], 'window', 20, 20, 'red', 'true')

ResultCenterColumn := Parameter[0]
ResultCenterRow := Parameter[1]
*清除模板
clear_metrology_model (MetrologyHandle)

完整代码

dev_close_window ()
********************变量定义********************
*搜索ROI
SearchROIRow1 := 405.341
SearchROIColumn1 := 1121.06
SearchROIRow2 := 3245.93
SearchROIColumn2 := 3676

*圆形模板ROI
ModelROIRow := 1281.04
ModelROIColumn := 2422.51
ModelROIRadius := 468.297
DilationRadius := 50

********************************************
* 第二种类型,圆的半径比第一种要大,11
SecondType := true
if (SecondType == true)
    ModelROIRadius := 560
    DilationRadius := 100
endif
Result := 'Pass'
*读图
read_image (OriImage, 'E:/机器视觉学习/海康视觉平台/二期VM视觉学习/二期VM视觉学习/机器视觉程序/标定相机找圆心和焊头修正相机找圆心之算法软件/标定相机找圆心和焊头修正相机找圆心之算法软件/03 标定相机找圆心/S2/1号机/1.bmp')
get_image_size (OriImage, Width, Height)
dev_open_window (0, 0, Width/5, Height/5, 'black', WindowHandle)
*将图像转成灰度图像
rgb1_to_gray (OriImage, GrayImage1)
*增强对比度
*输入原图像
*输出处理后的图像
*最小值
*最大值
Enhancement (GrayImage1, Image2, 5, 50)
*使用不同的掩码计算中值滤波器。
        *Image (输入参数)要过滤的图像。
        *ImageMedian (输出参数)过滤后的图像
        *MaskType 过滤掩码类型 值列表:'circle', 'square'
        *Radius 滤镜遮罩的半径
        *Margin 边界处理 默认值: 'mirrored' 建议值:` mirrored `, ` cyclic `, ` continue `, 0, 30, 60, 90, 120, 150, 180, 210, 240, 255
        *median_image (OriImage, Median, 'circle', 3, 'mirrored')
        *使用直方图确定的阈值分割图像。
        *auto_threshold (Median, Seg, 2.0)
         
         threshold (Image2, Regions, 0, 37)
         *threshold (Image2, Regions, 0, 129)
        *用圆形(2.5半径)结构元素【膨胀】
        *Radius : 圆形(2.5半径)
        *dilation_circle (Regions, RegionDilation2, 4.5)

        connection(Regions, Seg)
        *借助形状特征选择区域
        *Regions (输入参数)要检查的区域。
        *SelectedRegions (输出参数)满足条件的地区
        *Features 要检查的形状特征。        
        *Operation 个体特征的联动类型。默认值:'and' 值列表:'and', 'or'
        *Min 特征的下限或` min `。
        *Max 特征的上限或` max `。        
        select_shape (Seg, selectHole, 'area', 'and', 620478, 1.30065e+006)
        *select_shape(Seg, selectHole, ['width', 'height'], 'and', [ModelROIRadius*2- DilationRadius, ModelROIRadius*2- DilationRadius],\
                     [ModelROIRadius*2+ DilationRadius, ModelROIRadius*2+ DilationRadius])  
        *用圆形(2.5半径)结构元素【膨胀】
        *Radius : 圆形(2.5半径)
        *dilation_circle (selectHole, RegionDilation2, 4.5)
         *用圆形(3.5半径)结构元素【闭运算】
         closing_circle (selectHole, RegionDilation2, 4.5)
         *区域和区域中心。
         *参数说明
         *Regions (input_object)  输入要检查(计算)的区域
         *Area (output_control)  输出面积
         *Row (output_control) 中心点的行坐标
         *Column (output_control) 中心点的列坐标
         area_center(RegionDilation2, sel_area, sel_row, sel_col)
         *设置显示的字体
         set_display_font (WindowHandle, 26, 'mono', 'true', 'false')
         disp_message (WindowHandle, '匹配坐标:'+sel_row+','+sel_col, 'window', 20, 20, 'green', 'true')
         *显示十字中心
         disp_cross (WindowHandle, sel_row, sel_col, 50, 10)
        tuple_sort_index(sel_area, SortIndex)
        
        if (|SortIndex| > 0)
            select_obj(selectHole, sel_last, SortIndex[0]+1)
            
            fill_up(sel_last, sel_last)
            region_to_bin(sel_last, BinImage, 0, 255,  Width, Height)
            
            MetchedRow := sel_row[SortIndex[0]]
            MatchedColumn := sel_col[SortIndex[0]]
            
            *二维测量精定位圆的位置
            MetrologyParamNames := ['measure_transition', 'measure_select', 'min_score']
            MetrologyParamValues := ['positive', 'first', '0.6']
            *添加找圆工具
            create_metrology_model (MetrologyHandle)   
            set_metrology_model_param (MetrologyHandle, 'camera_param', [])
            set_metrology_model_image_size (MetrologyHandle, Width, Height)
            add_metrology_object_circle_measure (MetrologyHandle, sel_row, sel_col, ModelROIRadius, 70, 1, 1, 30, [], [], Index)
            *返回图像坐标中选定的计量对象的轮廓。
            *参数说明
            *Contour (输入参数)模型轮廓
            *MetrologyHandle (输入参数)计量模型的句柄
            *Index 计量对象的索引
            *Resolution 相邻轮廓点之间的距离
            get_metrology_object_model_contour(Contour, MetrologyHandle, 'all', 1.5)
            *获取测量区域和计量模型的计量对象的边缘位置结果
            *参数说明
            *Contour (输入参数)模型轮廓
            *MetrologyHandle (输入参数)计量模型的句柄
            *Index 计量对象的索引
            *Transition 选择亮/暗 或 暗/亮边缘。ALL全部, negative(白到黑),positive(黑到白)
            *Row 测量边的行坐标
            *Column 测量边的列坐标
            get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row2, Column2)
            dev_set_color ('cyan')
            dev_display (Contours)
            dev_display (Contour)
            apply_metrology_model (BinImage, MetrologyHandle)
            get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'all_param', Parameter)
            get_metrology_object_result (MetrologyHandle, 0, 'all', 'result_type', 'radius', radius)
            *判断是否找圆成功
            if (|Parameter| > 0)
                ResultCenterRow := Parameter[0]
                ResultCenterColumn := Parameter[1]
                *获取圆的半径
                ResultRadius := Parameter[2]
                *为每个输入点生成一个十字形状的XLD轮廓。
                *gen_cross_contour_xld (Cross, Row2, Column2, 100, 0)
                *dev_set_color('red')
                *dev_display(Cross)
                *创建XLD轮廓对应于圆或圆弧。
                *gen_circle_contour_xld (ContCircle1, ResultCenterRow, ResultCenterColumn, ResultRadius, 0, 6.28318, 'positive', 1)
                *dev_set_color('green')
                *dev_display(ContCircle1)
                 *获取计量模型的测量结果
                *参数说明:
                *(输出参数)MetrologyHandle 处理计量模型
                *index 
                *Instance 
                *GenParamName ‘result_type’:
                *对于圆,返回值是中心的坐标和圆的半径。顺序分别是[‘row’,‘column’,‘radius’]或 [‘x’,‘y’,‘radius’]
                *对于椭圆,返回值是中心的坐标,长轴’phi’的方向,较大半轴’radius1’的长度,以及椭圆的较小半轴’radius2’的长度。
                *顺序分别是[‘row’,‘column’,‘phi’,‘radius1’,‘radius2’]或 [‘x’,‘y’,‘phi’,‘radius1’,‘radius2’]
                *对于一条线,返回该线的起点和终点。顺序是[‘row_begin’,‘column_begin’,‘row_end’,‘column_end’]
                *或 [‘x_begin’,‘y_begin’,‘x_end’,‘y_end’]
                *对于矩形,返回值是中心的坐标,主轴’phi’的方向,较大的半边’length1’的长度,以及矩形的较小半边’length2’的长度。
                *顺序分别是[‘row’,‘column’,‘phi’,‘length1’,‘length2’]或 [‘x’,‘y’,‘phi’,‘length1’,‘length2’]
                *GenParamValue
                *Parameter
                get_metrology_object_result(MetrologyHandle, 'all', 'all', 'result_type', 'all_param', Parameter)
                *查询计量对象的结果轮廓
                *参数说明
                *Contour (输入参数)给定计量对象的结果轮廓
                *MetrologyHandle (输入参数)计量模型的句柄
                *Index (输入参数)计量对象的索引,想要第几个结果轮廓
                *Instance 输入参数)计量对象的实例
                *Resolution 相邻轮廓点之间的距离
                get_metrology_object_result_contour (Contour1, MetrologyHandle, 'all', 'all', 1.5)
*                fill_up(Contour1, Contour1circle)
                dev_set_line_width(3)
                dev_set_color('green')
                dev_display(Contour1)
                
                disp_message (WindowHandle, '圆中心坐标:X:'+Parameter[0]+',Y:'+Parameter[1], 'window', 20, 20, 'red', 'true')
                
                ResultCenterColumn := Parameter[0]
                ResultCenterRow := Parameter[1]
                *清除模板
                clear_metrology_model (MetrologyHandle)
            else
                Result := 'Fail'
            endif
            
            
        else
            Result := 'Fail'
        endif
    
************************************************
    
********************显示结果********************
    dev_get_window (WindowHandle)
    set_display_font (WindowHandle, 20, 'mono', 'true', 'false')
    dev_set_line_width (2)
    dev_clear_window()
    dev_display (OriImage)
    if (Result == 'Pass')
        color := 'green'  
        dev_display (Contour1) 
        *显示十字中心
        disp_cross (WindowHandle, Parameter[0], Parameter[1], 100, 90)
        *dev_display (ContCircle)
        dev_disp_text (Result + '\nX:' + ResultCenterColumn + ' Y:' + ResultCenterRow, 'window', 12, 12, color, ['box', 'box_color', 'shadow'], ['true', 'black', 'false'])        
    else
        color := 'red'
        dev_disp_text (Result, 'window', 12, 12, color, ['box', 'box_color', 'shadow'], ['true', 'black', 'false'])
    endif
    
***********************************************
    stop ()

效果

END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/786428.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gRPC 接口测试最佳实践

gRPC 是由谷歌开发的现代开源高性能 RPC 远程过程调用框架,由于采用了HTTP/2 作为底层传输协议,它特别适用于高性能应用场景。gRPC 在视频流传输等大规模数据传输场景以及密集的服务间通讯的微服务架构中表现出色。 数据交换使用轻量级的 Protobuf 序列…

18.按键消抖模块设计(使用状态机,独热码编码)

(1)设计意义:按键消抖主要针对的时机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子就断开。因而在闭合以及断开的瞬…

Jmeter-接口测试-GET请求

简介 Jmeter 是 apache 公司基于 java 开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简 单。因为 jmeter 是 java 开发的,所以运行的时候必须先要安装 jdk…

数据结构——Trie

题目: 维护一个字符串集合,支持两种操作: I x 向集合中插入一个字符串 x𝑥;Q x 询问一个字符串在集合中出现了多少次。 共有 N𝑁 个操作,所有输入的字符串总长度不超过 10^5,字符串仅…

(HAL)stm32f407+freertos通过usb驱动移远4G模块-EC600U

概述 本篇文章主要介绍: 如何使用STM32CubeMX创建stm32F407+freertos+usb host的基础工程。USB-HOST-CDC驱动运行过程。如何根据4G模块的具体信息修改usb相关代码。MCU如何通过usb与4G模块通信,收发数据。调试过程中遇到的问题以及解决办法。 整个过程中在网上搜罗了很多参考…

Test-Time Adaptation via Conjugate Pseudo-labels--论文笔记

论文笔记 资料 1.代码地址 https://github.com/locuslab/tta_conjugate 2.论文地址 https://arxiv.org/abs/2207.09640 3.数据集地址 论文摘要的翻译 测试时间适应(TTA)指的是使神经网络适应分布变化,在测试时间仅访问来自新领域的未标记测试样本。以前的TT…

STM32(二):STM32工作原理

这里写目录标题 0、参考1、寄存器和存储器基本概念(1)基本概念(2)主要区别(3)联系(4)实际应用中的案例(5)总结(6)一些名词解释 2、STM…

实时监测、智能预警:电缆光纤测温系统|原理、应用与前景

实时监测、智能预警:电缆光纤测温系统|原理、应用与前景 电缆光纤测温系统,作为现代电力系统中不可或缺的一部分,以其独特的优势在电缆安全监控领域发挥着日益重要的作用。该系统利用光纤传感技术,实时监测电缆的运行温度&#x…

Qt常用基础控件总结—带边框的部件(QFrame和QLabel)

带边框的部件 框架控件QFrame类 QFrame类介绍 QFrame 类是带有边框的部件的基类,带边框部件的特点是有一个明显的边框,QFrame类就是用来实现边框的不同效果的(把这种效果称为边框样式),所有继承自 QFrame 的子类都可以使用 QFrame 类实现的效果。 部件通常是矩形的(其他…

Kithara和OpenCV (一)

Kithara使用 OpenCV 目录 Kithara使用 OpenCV简介需求和支持的环境构建 OpenCV 库使用 CMake 进行配置以与 Kithara 一起工作 使用 OpenCV 库设置项目运行 OpenCV 代码图像采集和 OpenCV自动并行化限制和局限性1.系统建议2.实时限制3.不支持的功能和缺失的功能4.显示 OpenCV 对…

【Perforce】QAC-分析时如何不应用某些规则

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决扫描项目时如何不应用某些规则进行分析。 2、 问题场景 对于一些建议性的MISRA规则,不想用于项目扫描,如何处理? 3、软硬件环境 1、软件版本:HelixQAC23.04 2…

中国科学院院士丁汉:人形机器人——机器人与人工智能结合的爆发点

工业制造是国民经济的重要支柱,是实现发展升级的国之重器。早在 2002 年,党的十六大就曾提出,坚持以信息化带动工业化,以工业化促进信息化,走出一条科技含量高、经济效益好、资源消耗低、环境污染少、人力资源优势得到…

24年,计算机仍然是最热门的专业?!

大家好,我是程序员鱼皮。最近很多高考完的朋友开始进入了填志愿选专业的时期。出于好奇,我也在网上了解了一下今年的热门专业和就业情况,结果并没有出乎我的意料,对于很多省份,计算机科学与技术依然是最热门的专业&…

fastadmin 各种开发技巧,问题总合集,持续跟新中....

使用 搜索的使用 自定义按钮 需改后的代码 {field: operate, title: __(Operate), table: table,buttons: [{name: detail, text: 详情, title: 详情, icon: fa fa-list, classname: btn btn-xs btn-primary btn-dialog, url: version/detail},{name: edit, text: 编辑我, …

班级录取查询系统如何制作

在教育的长河中,我们每位老师都曾面临过这样一个问题:如何高效、准确地完成班级录取查询的任务?记得在以往,每当新学期伊始,我们不得不手忙脚乱地整理学生名单,然后逐一通知他们所在的班级。这个过程不仅耗…

【机器学习】特征选择:精炼数据,提升模型效能

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 特征选择:精炼数据,提升模型效能引言为何进行特征选择&a…

windows server安全设置,多次登录密码错误锁定

河北瑾航科技有限公司推荐,www.jinhangsmart.top 按快捷键【winr】,在【运行】框中输入“gpedit.msc”后回车。 进入【本地组策略编辑器】后,展开至:计算机配置—Windows设置—安全设置—帐户策略—帐户锁定策略。 双击右侧…

一次性语音芯片——智能家居的新兴技术

一次性语音芯片,作为现代智能家居技术,正以其魅力和性能,逐渐渗透到我们日常生活的每一个角落。这些小巧而强大的芯片,不仅为智能家居设备赋予了“说话”的能力,更在提升用户体验、增强设备交互性方面发挥了举足轻重的…

GITLAB配置CI教程

一、gitlab runner下载安装 1、研发网下载安装包【172.20.191.53已经安装过了,不用再安装了,可以直接到第三步】 下载gitlab安装包 wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/32/gitlab-runner-12.1.0-1.x86_64.rpm​ …

数字力量助西部职教全面提升——唯众品牌大数据、人工智能系列产品中标甘肃庆阳职院数字经济人才培养基地!

近日,唯众品牌凭借在大数据和人工智能领域深耕多年的技术积累和卓越产品,成功中标庆阳职业技术学院全国一体化算力网络国家枢纽节点数字经济人才培养基地项目,标志着唯众在助力西部职业教育与数字经济融合发展的新征程上迈出了坚实的一步。 …