Baumer工业相机堡盟工业相机如何使用BGAPISDK生成视频(C++)
Baumer工业相机
Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理
Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度可扩展性等特点。
Baumer工业相机由于其性能和质量的优越和稳定,常用于高速同步采集领域,通常使用各种图像算法来提高其捕获的图像的质量。
Baumer工业相机BGAPISDK生成视频的技术背景
Baumer工业相机的BGAPI SDK是Baumer公司开发的针对其相机产品系列的一套软件开发工具包。该SDK提供了一组API,使开发人员可以编写专业应用程序,从而控制、捕获、处理和显示Baumer相机的图像和数据。BGAPI SDK支持多种编程语言,包括C++、C#、Visual Basic、LabVIEW、Matlab等,并提供了大量示例代码和文档,以帮助用户轻松上手,快速完成应用程序的开发。
BGAPI SDK提供了丰富的功能,可以控制Baumer相机的所有参数,包括曝光时间、增益、白平衡、触发模式等,以及支持各种数据格式,例如Raw、BMP、JPG等,同时还提供了实时显示、数据采集、图像处理等功能,为开发人员提供了高度定制化的解决方案。此外,BGAPI SDK还支持多相机系统的开发,并可支持各种计算机操作系统,如Windows、Linux、Mac OS等。
Baumer工业相机通过SDK生成视频功能的技术背景主要涉及到图像处理和视频生成两个核心环节。
在图像处理方面,Baumer工业相机使用OpenCV库进行图像处理。OpenCV是一款开源的计算机视觉和机器学习软件库,包含了众多算法和函数,可以实现对图像的读取、预处理、特征提取、目标检测等功能。Baumer工业相机通过引用OpenCV库,实现了对图像的高效处理和解析。
在视频生成方面,Baumer工业相机通过GAPISDK(Baumer公司自主研发的软件开发套件)实现了对图像数据的进一步处理和生成视频。GAPISDK针对Baumer工业相机的特点和性能进行了优化,可以更好地利用相机的硬件资源,提高处理速度和效率。同时,GAPISDK还提供了丰富的API接口和函数库,可以方便地进行二次开发和定制,满足不同用户的需求。
通过引用OpenCV库和GAPISDK,Baumer工业相机实现了对图像的高效处理和生成视频的功能。这不仅提高了工业生产中的图像处理效率,也进一步推动了工业自动化和智能化的发展。
本文介绍的通过集成BGAPI SDK进行生成视频的功能。
Baumer工业相机通过BGAPISDK循环查找相机序列功能
下面介绍在C++里Baumer工业相机如何通过BGAPISDK循环查找相机序列功能方式
1.引用合适的类文件
代码如下(示例):
/* Copyright 2019-2020 Baumer Optronic */
#include <stdio.h>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <set>
#include <vector>
#include <algorithm>
#include <string>
#include <functional>// This example shows how to convert a set of images (in alphabetical order) into a video file using the openCV
// library. If no command line parameters are given the example will generate a set of images in the folder
// 'ExampleImages' (if not empty the images will be used) and create a video file 'ExampleVideo.avi' from this
// images// openCV must be available!!!// Command Line Parameters
//
// --imgDir: sets the directory where source images are located, if not set, the default 'ExampleImages' will be used
// Important: All image files need to have the same dimension for the video creation to be successful
// Tip: You can use the Baumer CameraExplorer Image Recorder functionality to record some example images
//
// --videoFile: sets the output file name for the created video, if not, the default 'ExampleVideo.avi' will be usedconst std::string gc_sImageDirDefault = "ExampleImages";
const std::string gc_sVideoFileNameDefault = "ExampleVideo.avi";#if defined(_WIN32)
# include <direct.h>
#else
# include <sys/stat.h>
#endif
#include "Arguments.h"
#include "HelperFunctions.h"#define EXAMPLE_IMAGES 1#if defined(_WIN32)
static const char c_cPathSeparator = '\\';
#else
static const char c_cPathSeparator = '/';
#endif
如下为CMakeLists里代码:
cmake_minimum_required(VERSION 3.10)message(STATUS "## ${CMAKE_CURRENT_BINARY_DIR} ##")
get_filename_component(EXAMPLE_NAME "${CMAKE_CURRENT_BINARY_DIR}" NAME)
string(SUBSTRING ${EXAMPLE_NAME} 0 3 TARGET_NAME)
project(${EXAMPLE_NAME})set(SOURCE_FILES ${EXAMPLE_NAME}.cpp${SHARED_DIR}/Arguments.cpp${SHARED_DIR}/Arguments.h${SHARED_DIR}/HelperFunctions.cpp${SHARED_DIR}/HelperFunctions.hUserTemplate.user
)
include_directories(${SHARED_DIR})# =================== Add openCV support! ==============================
if(ENABLE_OPENCV)message(STATUS "\n======================= Configure OpenCV library =======================")set(BUILD_SHARED_LIBS OFF)find_package(OpenCV QUIET COMPONENTS core highgui imgproc) # some packages in OpenCV obsolete ?!?if(OpenCV_FOUND)message(STATUS "OpenCV Version: '${OpenCV_VERSION}'")message(STATUS "OpenCV LibDir: '${OpenCV_LIB_PATH}'")if(OpenCV_VERSION_MAJOR GREATER "2")add_definitions(-DUSE_OCL_COMPONENT=3)find_package(OpenCV COMPONENTS videoio imgcodecs)if(NOT OpenCV_FOUND)message(STATUS "OpenCV has no Video support!")endif()elseif (OpenCV_VERSION_MAJOR LESS "2")option(ENABLE_OPENCV "Enable OpenCV Support in SDK example" OFF)option(OpenCV_FOUND "OpenCV Found" OFF)message(STATUS "OpenCV with Version 1.x not supported!")else() # OpenCV Version 2.xfind_package(OpenCV COMPONENTS ocl) # this package in OpenCV obsolete ?!?endif()else()message(STATUS "OpenCV not supported!")endif()if(OpenCV_FOUND AND ENABLE_OPENCV)add_definitions(-DUSE_OPENCV=1)list(APPEND INCLUDE_DIR ${OpenCV_INCLUDE_DIRS})message(STATUS "OpenCV Libs: '${OpenCV_LIBS}'")else()message(STATUS "This means program '${PROJECT_NAME}' couldn't run properly!")message(STATUS "Please set the correct search path for the OpenCV package and/or use OpenCV > 3.0!")message(STATUS "=====================================================================\n")endif()
endif()message(STATUS "## OpenCV is configured: ${PROJECT_NAME}! ##\n")
message(STATUS "=====================================================================\n")add_executable(${TARGET_NAME} ${SOURCE_FILES})
if(OpenCV_FOUND)target_link_libraries(${TARGET_NAME} "${OpenCV_LIBS}")
endif()set_property(TARGET ${TARGET_NAME} PROPERTY PROJECT_LABEL ${PROJECT_NAME})
set_property(TARGET ${TARGET_NAME} PROPERTY OUTPUT_NAME ${PROJECT_NAME})if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")if(OpenCV_FOUND AND OpenCV_SHARED)get_target_property(OpenCV_DLL_DEBUG opencv_world IMPORTED_LOCATION_DEBUG)get_target_property(OpenCV_DLL_RELEASE opencv_world IMPORTED_LOCATION_RELEASE)set(OpenCV_WorldLib "$<$<CONFIG:debug>:${OpenCV_DLL_DEBUG}>$<$<CONFIG:release>:${OpenCV_DLL_RELEASE}>")add_custom_command(TARGET ${TARGET_NAME} POST_BUILDCOMMAND ${CMAKE_COMMAND} -E copy_if_different "${OpenCV_WorldLib}" $<TARGET_FILE_DIR:${TARGET_NAME}>COMMENT "copy OpenCV library to output directory")endif()set(USER_FILE ${TARGET_NAME}.vcxproj.user)configure_file(UserTemplate.user ${USER_FILE} @ONLY)
endif()
2.通过BGAPISDK生成视频的功能
Baumer工业相机通过BGAPI SDK生成视频核心代码如下所示:
// ---------------------------------------------------------------------------------------------------------------------
// Here you can use argument parameters for sImgDirectory and sVideoFileName!
int main(int argc, char* argv[]) {std::string sImgDirectory;std::string sVideoFileName;static const Argument argumentList[] = {{ &sImgDirectory, "p", "imgPath", false , argumentString, 0, "Pathname", "Image Path" },{ &sVideoFileName, "v", "videoFile", false , argumentString, 0, "Filename", "Video File Name" },};parseArguments(argumentList, (sizeof(argumentList)/sizeof(argumentList[0])), argc, argv);int iReturnCode = 0;try {std::cout << std::endl;std::string sExampleName = __FILE__;sExampleName = sExampleName.substr(sExampleName.find_last_of(c_cPathSeparator) + 1);writeHeader1(sExampleName);writeHeader1("EXAMPLE VIDEO FROM IMAGE DIRECTORY");// The flag USE_OPENCV is set by the CMake run, CMake tries to find OpenCV >= Version 2
#if USE_OPENCV // OpenCV// The flag USE_OCL_COMPONENT is set by the CMake run if OpenCV can use OpenCL to speed up it's functionality
# if USE_OCL_COMPONENTif (cv::ocl::haveOpenCL()) {cv::ocl::Context context;if (!context.create(cv::ocl::Device::TYPE_GPU)) {// FAIL: no context} else {std::cout << "OpenCL available!" << std::endl;for (size_t i = 0; i < context.ndevices(); i++) {cv::ocl::Device clDevice = context.device(i);std::cout << clDevice.vendorName() << std::endl;std::cout << clDevice.driverVersion() << std::endl << std::endl;}}}
# endif // USE_OCL_COMPONENTstringvec fileList;std::string imgDir;if (!sImgDirectory.empty()) {imgDir = sImgDirectory;} else {imgDir = gc_sImageDirDefault;std::cout << "Using default setting for 'imgPath': " << imgDir << std::endl;// Create the directory below the execution dir
#if defined(_WIN32)_mkdir(imgDir.c_str());
#elsemkdir(imgDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO);
#endif}
#ifdef WITH_REGEXreadDirectory(imgDir, ".*.jpg", &fileList);
#elsereadDirectory(imgDir, "*.jpg", &fileList);
#endifsize_t slashPos = imgDir.find_last_of("/\\");std::string exampleDir = imgDir;if (slashPos < std::string::npos)exampleDir = imgDir.substr(slashPos+1);if (fileList.empty() && (exampleDir == gc_sImageDirDefault)) {// Create some images if the image directory identical with the defaultstd::cout << "Here were be some test images with changing colors created!" << std::endl;createExampleImages(imgDir, cv::Size(1000, 500));readDirectory(imgDir, ".*.jpg", &fileList);}// If the fileList is empty, exit the program:if (fileList.empty()) {std::cout << "No Image(s) found!" << std::endl;return 102;}std::sort(fileList.begin(), fileList.end(), std::less<std::string>());// Now there are some pictures in the list - and you can create a video file from thiscv::Mat frame = cv::imread(imgDir + "/" + fileList.at(0));cv::Size frameSize = cv::Size(frame.cols, frame.rows);int frames_per_second = 10;// Create and initialize the VideoWriter object:// std::string sVideoFileName;if (sVideoFileName.empty()) {sVideoFileName = gc_sVideoFileNameDefault;std::cout << "Using default setting for 'videoFile': " << sVideoFileName << std::endl;}
#ifdef CV_FOURCC_MACROcv::VideoWriter oVideoWriter(sVideoFileName,CV_FOURCC('M', 'J', 'P', 'G'), // cv::VideoWriter::fourccframes_per_second, frameSize, true);
#elsecv::VideoWriter oVideoWriter(sVideoFileName,cv::VideoWriter::fourcc('M', 'J', 'P', 'G'),frames_per_second, frameSize, true);
#endif// If the VideoWriter object is not initialized successfully, exit the program:if (oVideoWriter.isOpened() == false) {std::cout << "Cannot save the video to a file" << std::endl;return 103;}// ... and now write all pictures in the video fileint iNumber = 0;for (std::string filename : fileList) {std::cout << "file" << (++iNumber) << ": " << filename << std::endl;cv::Mat frame2 = cv::imread(imgDir + "/" + filename);if (!frame2.empty()) // use valid picture only!oVideoWriter.write(frame2);}oVideoWriter.release();#else // USE_OPENCV// If we could not find OpenCV this text will be displayed.std::cout << "Without OpenCV we cannot create the video in this example!" << std::endl;std::cout << "Availability is checked while CMake creates this project." << std::endl;std::cout << "Please install OpenCV (version 2.3 or later) or set 'OpenCV_DIR' to the" << std::endl;std::cout << "correct path in the CMakeTests.txt script or as a variable in your environment" << std::endl;std::cout << "and run CMake again. " << std::endl;std::cout << "######################################" << std::endl << std::endl;#endif // USE_OPENCVstd::cout << std::endl;std::cout << "End" << std::endl << std::endl;}catch (const std::exception& e) {iReturnCode = (iReturnCode == 0) ? 1 : iReturnCode;std::cout << "unhandled std exception: '" << e.what() << "'" << std::endl;}catch (...) {iReturnCode = (iReturnCode == 0) ? 1 : iReturnCode;std::cout << "unhandled exception" << std::endl;}if (iReturnCode != 0)std::cout << "Example ends with error: " << iReturnCode << std::endl;std::cout << "Press ENTER to close the program!" << std::endl;int endKey = std::cin.get();endKey = endKey; // unused variablereturn iReturnCode;
}
Baumer工业相机使用GAPISDK生成视频功能的优势
工业相机使用GAPISDK生成视频功能的优势主要包括:
- 高效率:使用GAPISDK生成视频功能可以大大提高工业相机的数据传输和处理效率。相比传统的相机数据传输方式,使用GAPISDK可以更好地优化数据传输流程,减少数据冗余和传输时间,从而提高整体的处理效率。
- 高质量:GAPISDK针对图像处理进行了深度优化,可以更好地处理图像数据,提高图像质量。使用GAPISDK生成的视频可以更好地保持原始图像的清晰度和色彩,从而提高视频的质量。
- 实时性:使用GAPISDK生成视频功能可以保证数据的实时性。通过优化数据传输和处理流程,GAPISDK可以更好地保证数据传输的实时性和处理的及时性,从而满足工业生产中对实时性的要求。
- 可扩展性:GAPISDK是一个开放性的软件开发套件,可以方便地与其他工业相机和控制软件集成。这使得工业相机在使用GAPISDK生成视频功能时具有更好的可扩展性,可以根据实际需求进行定制和扩展。
- 灵活性:GAPISDK提供了丰富的API接口和函数库,可以方便地进行二次开发和定制。这使得工业相机在使用GAPISDK生成视频功能时具有更高的灵活性,可以根据实际需求进行灵活的定制和控制。
总之,工业相机使用GAPISDK生成视频功能具有高效率、高质量、实时性、可扩展性和灵活性等优势,可以更好地满足工业生产中对图像处理和视频生成的需求。
Baumer工业相机使用GAPISDK生成视频的行业应用
Baumer工业相机使用GAPISDK生成视频的行业应用非常广泛,主要包括:
- 汽车制造:在汽车制造过程中,Baumer工业相机可以用于拍摄零部件的图像,并通过GAPISDK将拍摄的图像数据转换成视频,以进行进一步的图像处理、尺寸测量、缺陷检测等任务。这可以提高生产效率和质量。
- 电子制造:在电子制造领域,Baumer工业相机可以用于识别和检测电子元器件的外观和位置,并通过GAPISDK将拍摄的图像数据转换成视频,以进行进一步的图像处理、质量检测和分类等任务。这可以提高生产流程的效率和品质。
- 食品加工:在食品加工行业中,Baumer工业相机可以用于拍摄食品的图像,并通过GAPISDK将拍摄的图像数据转换成视频,以进行进一步的图像处理、品质检测和分类等任务。这可以提高生产流程的效率和品质。
- 物流仓储:在物流仓储领域,Baumer工业相机可以用于拍摄货物的图像,并通过GAPISDK将拍摄的图像数据转换成视频,以进行进一步的图像处理、识别和跟踪等任务。这可以实现自动化仓库管理和智能物流配送等目标。
- 医疗影像:在医疗影像领域,Baumer工业相机可以用于拍摄医学影像,如X光片、CT扫描和MRI等,并通过GAPISDK将拍摄的图像数据转换成视频,以进行进一步的图像处理、分析和诊断等任务。这可以提高医疗诊断的准确性和效率。
总之,Baumer工业相机使用GAPISDK生成视频的行业应用非常广泛,涉及到制造业、物流业、医疗行业等多个领域。随着工业自动化和智能化的发展,其应用前景也将越来越广阔。
相关文章:
Baumer工业相机堡盟工业相机如何使用BGAPISDK生成视频(C++)
Baumer工业相机 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还…...

CentOS 搭建本地 yum 源方式 安装 httpd 服务
CentOS 搭建本地 yum 源方式 安装 httpd 服务 修改 yum 源 挂载光驱 mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdromvi /etc/fstab追加以下内容: /dev/cdrom /mnt/cdrom iso9660 defaults 0 0手动修改CentOS-Base.repo 备份 yum 源配置文件 mv /etc/yum.re…...
第二篇 渲染框架2.x
简介 整个渲染框架主要包含:用于控制场景中所有渲染节点的渲染状态的流程的RenderFlow。更新渲染数据、写入Buffer的Assembler。暂存数据的RenderData。数据缓冲区的MeshBuffer、quadBuffer、spineBuffer。包含着色器程序和渲染技术的Material。渲染指令数据的装载…...

k8s-----25、资源调度-ResourceQuota资源配额、资源限制limitrange、服务质量QoS
1、ResourceQuota资源配额 1.0 作用 命名空间资源配额。防止公司内部人员对资源的不合理利用。 1.1、为什么需要资源配额 1、作为k8s集群的管理员,知道集群的规模,会合理规划资源,但是使用侧不知道,会导致很多不合理的使用场景…...

Pytorch使用torchvision.datasets.ImageFolder读取数据集,数据集的内容排列状况
当使用torchvision.datasets.ImageFolder读取猫狗数据集时,dataset中存的图片是 猫狗猫狗猫狗猫狗 还是 猫猫猫猫狗狗狗狗 呢? 数据集文件的存放路径如下图 测试代码如下 import torch import torchvisiontransform torchvision.transforms.Compose([torchvision.transform…...

uni-app:引用文件的方法
绝对定位 ①import common from "/utils/common.js" ②import common from "utils/common.js" <template><view></view> </template> <script>import common from "/utils/common.js"export default {data() {ret…...

软件测试必备:如何编写测试用例?
前言 今天想和大家来聊聊测试用例,这篇文章主要是想要写给软件测试小伙伴们的,因为我发现还是有很多小伙伴在遇到写测试用例的时候无从下手,我就想和大家简单的聊聊,这篇文章主要是针对功能测试的哟。 同时,我也准备…...

windows安装数据库MySQL
windows安装数据库MySQL 文章目录 windows安装数据库MySQL一、MySQL官网下载压缩包二、在D盘新建文件夹D:\MySQL,将下载的压缩包解压到该文件夹下三、配置环境变量四、通过命令行模式安装、启用、配置SQL服务 一、MySQL官网下载压缩包 下载地址:https:/…...

2023CCF中国开源大会 | 麒麟信安作为首批合作伙伴入驻全国信创开源广场
聚开源各界群智,于湘江之滨论道。10月21-22日,以“开源联合,聚力共赢”为主题的2023 CCF中国开源大会(CCF ChinaOSC)在长沙隆重召开。本届大会由中国计算机学会、开放原子开源基金会主办,中国工程院院士、鹏…...

python网络爬虫实例
目录 1、访问百度 2、输入单词百度翻译 3、豆瓣电影排行榜 4、豆瓣电影top250 5、下载美女壁纸 1、访问百度 from urllib.request import urlopen url"http://www.baidu.com" respurlopen(url)with open("mybaidu.html",mode"w") as f:f.wr…...

ArcGIS中如何为跨带数据投影?
北京54、西安80高斯克吕格投影是我国常用的投影坐标系统,它们是一种分带投影方式,有3和6分带,不适合大范围内的投影使用。但是如果有份数据范围较大,跨越了多个度带,该选择哪个坐标系统进行投影转换呢? 在大范围内,常用的坐标系统有Albers等面积投影和Lambert等角投影,…...
如何在Ubuntu中安装libevent库
我自己在ubuntu 22 和20上都安装成功了。应该是每个版本都适合的。 我主要是整合参考这两个人的。 Ubuntu安装及测试Libevent_如何查看ubuntu是否安装了libevent-CSDN博客 【精选】Linux Ubuntu 20.04LTS安装OpenSSL步骤_ubuntu安装openssl-CSDN博客 下载方法一:…...

领域高口碑 | 中科院1区TOP,Elsevier出版社,仅1个月Accept!稳定检索40年!
【SciencePub学术】本期,小编给大家推荐的是一本Elsevier旗下、稳定检索40年、影响因子为10.0的中科院1区TOP刊,期刊详情及专题信息如下: 期刊简介 COMPUTERS IN INDUSTRY ISSN:0166-3615 E-ISSN:1872-6194 IF&a…...
RDBMS 的历史回顾
“数据库”这个词是怎么来的?当 SQL 是 SEQUEL 时它代表什么?通过这篇有关 RDBMS 历史的文章了解所有这些内容以及更多内容。 埃里克迪特里希用户头像 经过 埃里克迪特里希 核心 Anush Gasparyan 用户头像 经过 阿努什加斯帕里安 2017年7月21日 意见…...

windows 离线安装 vue 环境
由于公司要求在内网开发项目,而内网不能连接外网,因此只能离线安装 vue 环境,在网上找过很多的离线安装方法,但都没有成功,于是在不断的尝试中找到了以下方法。 1、找一台与内网电脑相同系统的有网电脑。 2、在有网的电…...

python实现批量pdf转txt和word
文章目录 背景需求环境安装完整代码效果 背景需求 已经获取到了大量的pdf在download文件夹中,但是我需要的是txt文件和word文件~ 环境安装 pip install pdf2docx pdfminer.six完整代码 # pip install pdf2docx pdfminer.siximport os from pdf2docx …...
c++ 并发与多线程(12)线程安全的单例模式-2
一、内部静态变量的懒汉单例(C++11 线程安全) #include <iostream> #include <thread> #include <vector>class Single { public:// 获取单实例对象static Single& GetInstance();// 打印实例地址void Print();private:// 私有构造函数,防止外部创建对…...

银河麒麟v10x86或者arm离线安装服务
银河麒麟v10x86或者arm离线安装服务 最近有个项目,甲方的服务器用的全是国产化服务器银河麒麟,架构是x86的然后也无法连接外网,需要离线安装服务正常思路就是找到离线安装的包,然后拷贝到现场的服务器中进行安装所以问题就在于如…...

【Ansible自动化运维工具 1】Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)
Ansible常用模块 一、Ansible1.1 简介1.2 工作原理1.3 Ansible的特性1.3.1 特性一:Agentless,即无Agent的存在1.3.2 特性二:幂等性 1.4 Ansible的基本组件 二、Ansible环境安装部署2.1 安装ansible2.2 查看基本信息2.3 配置远程主机清单 三、…...

Telegram 引入了国产小程序容器技术
Telegram 宣布为其开发者提供了一项“能够在 App 中运行迷你应用”的新功能( 迷你应用即 Mini App,下文中以“小程序”代替)。 在一篇博客文章中,Telegram 的开发者写到“小程序提供了可替代互联网网站的灵活界面(cre…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...