Windows使用Docker访问ChatGPT
前言
冲浪发现好玩的东西,于是就开干!
直接通过 ChatGPT 官网可以免费使用,但是奈何魔法不够强大(money 不够┭┮﹏┭┮),经常会访问不了,或者超慢的生成速度。
网上有一种方式,是利用 Github + Vercel 部署绑定自有的域名,通过调用 OpenAI API Key 实现在国内访问使用其功能,但是这种方式既需要有自己的域名,又需要有额度的 ChatGPT 账号,新注册的账号有免费额度 5 美元,但只有注册的前三个月有效。于是就衍生了这种白嫖的方法——潘多拉(Pandora)项目,目前刚开始使用,体验很不错!
前置条件
一个能用的 ChatGPT 账号
能够科学上网
环境配置
检查环境
首先你需要先检查一些电脑是否已经开启虚拟化,打开任务管理器,点击性能、CPU,右下角即可看懂是否开启。
若是没有启用的话,则需要通过进入 bios 下进行设置;这一部分可以上网搜索一下 windows 开启虚拟化,因为不同机子的 bios 界面不太一样,这里就不给出操作步骤了,操作很简单的。
其次你如果你是 Windows 家庭版则需要安装 Hyper-V,安装方法也很简单。
...
基于Opencv的手势识别
前言
本文采用 Opencv C++ 实现简单的手势识别;主要步骤为获取手部轮廓、提取特征、训练网络、预测结果。
肤色检测
这一步主要是便于后续的手部轮廓提取。这里用到的方法是 基于 YCrCb + OSTU 的方法的,其他方法可参考上一篇文章基于Opencv的人体肤色检测。
相关代码
1234567891011121314151617181920Mat YCrCb_otsu_Detect(Mat& src){ //resize(src, src, Size(300,300)); Mat ycrcb_img; cvtColor(src, ycrcb_img, COLOR_BGR2YCrCb); // 分离通道 提取Cr分量 vector<Mat> channels; split(ycrcb_img, channels); Mat cr_img = channels[1]; threshold(cr_img, cr_img, 0, 255, THRESH_BINARY | THRESH_OTSU); Mat ycrcb_otsu_detect; src.co ...
基于Opencv的人体肤色检测
前言
opencv 中进行肤色检测的方法大致为以下五种方法。本文中的人体肤色以黄种人为例。
三种图像颜色空间
RGB
RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。它是最通用的面向硬件的彩色模型。该模型用于彩色监视器和一大类彩色视频摄像。
Opencv 采用的是 BGR,顺序不一样了而已。
HSV
RGB 是从硬件的角度提出的颜色模型,在与人眼匹配的过程中可能存在一定的差异,HSV色彩空间是一种面向视觉感知的颜色模型。
HSV色彩空间从心理学和视觉的角度出发,指出人眼的色彩知觉主要包含三要素:色调(Hue,也称为色相)、饱和度(Saturation)、亮度(Value),色调指光的颜色,饱和度是指色彩的深浅程度,亮度指人眼感受到的光的明暗程度。
HSV范围H:0~180 S:0~255 V:0~255
**色调:**色调与混合光谱中的主要光波长相关,例如“赤橙黄绿青蓝紫”分别表示不同的色调。如果从波长的角度考虑,不同波长的光表现为不同的颜 ...
基于Harrcascades的人脸识别
前言
采用Opencv官方训练好的Harrcascades分类器进行人脸识别和对人脸打马赛克。
涉及到的一些知识
马赛克原理
将要加马赛克的区域划分成若干个小矩形区域,然后每个小矩形区域的值都取该小矩形区域左上角的值。
CascadeClassifier 级联分类器
分类器: 判别某个事物是否属于某种分类的器件,两种结果:是、否 。
级联分类器: 可以理解为将N个单类的分类器串联起来。如果一个事物能属于这一系列串联起来的的所有分类器,则最终结果就是 true,若有一项不符,则为 false。
CascadeClassifier 为 OpenCV 下用来做目标检测的级联分类器的一个类。该类中封装的目标检测机制,简而言之是滑动窗口机制 + 级联分类器的方式。
**CascadeClassifier检测的基本原理:**检测的时候可以简单理解为就是将每个固定size特征(检测窗口)与输入图像的同样大小区域比较,如果匹配那么就记录这个矩形区域的位置,然后滑动窗口,检测图像的另一个区域,重复操作。由于输入的图像中特征大小不定,比如在输入图像中眼睛是50x50的区域,而训练时的是25x25,那么只有 ...
基于Opencv的形状识别
基于Opencv的形状识别
前言:
一个简单的形状识别。
实验环境
Window 10、Visual Studio 2022、 opencv4.6
涉及到的一些知识
findContours寻找轮廓函数
1234567891011CV_EXPORTS_W void findContours( InputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point());/** @overload */CV_EXPORTS void findContours( InputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset = Point());eg: vecto ...
华为开发者大会2023
华为开发者大会2023
得益于郑老师和华为终端公司有一个产学合作协同育人项目,对方提供了一次 8 月 6 日参加 HDC华为开发者大会的机会,因此我们能够参加此次开发者大会。
每个进场的人都有分配一个牌子,上面有个人的信息,二维码也是用来识别身份的。这个牌子真的很好看!特别是在太阳光的照射下,可以更明显得看出不同颜色。
大会分三天,每天都有不同的安排,最后一天也就是 6 号主要是 HarmonyOS学生公开课。
今天也是十分幸运,在公开课上答题获奖了,然后扫描二维码抽到了开发板(只有10个名额)!!,这个开发板是可以用来开发鸿蒙系统的,很是期待!!
书包是去年的,里面有一件白T但没logo,今年的T恤有logo;一个红色水杯,一个胸针。
打卡一些活动获取活力值兑换的奖品,一开始以为挂包是大的那种,早知道就换个书包了!!
光顾着玩了没怎么拍照片!
没有退路就是胜利之路!
期待下一次的到来(如果有机会的话hhh)。
基于Opencv的车道线检测
基于Opencv的车道线检测
前言:
这只是一个简单的检测,并不具有普遍性。车道线检测的应用很广泛,小到一些智能小车的巡线功能,大到无人驾驶巡线功能等,一般用于小车运动应用,但是在不同场景下,它们的需求大不相同,因此也就需要不同的技术去实现。本次实验采用opencv来实现,主要是用来复习巩固自己所学知识,同时由于是基于opencv实现的传统方法,没有运用一些模型来训练等,因此项目并不具有普遍性,需要根据不同视频进行调参。
实验环境
Window 10、Visual Studio 2022、 opencv4.6
涉及到的一些知识
霍夫变换
霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。
Opencv中的霍夫线变换
霍夫线变换是一种用来寻找直线的方法。在使用霍夫线变换之前,首先要对图像进行边缘检测的处理,因此霍夫线变换的输入必须是二值图像。
OpenCV支持三种不同的霍夫线变换
标准霍夫变换(Standard Hough Transform,SHT)
多尺度霍夫变换 ...
移植u8g2库到stm32
抑制u8g2库到stm32(标准库)
移植u8g2库到stm32(标准库)
实验硬件:
STM32F103ZE
OLED:0.96寸OLED,IIC接口
U8g2 是一个用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,并支持如SSD1306等多种类型的OLED驱动。
U8g2源码的开源库地址:https://github.com/olikraus/u8g2
移植步骤
从官网下载 u8g2 的源码;
只移植c语言版本,因而只需要将用到 csrc文件夹内的文件;
找到需要对应的驱动文件(u8x8_d_xxx.c),只需要添加一个型号即可,这里我用到的是 u8x8_d_ssd1306_128x64_noname.c 文件,然后其余的型号可以删除掉(格式一般都为 u8x8_d_xxx.c)
修改 u8g2_d_setup.c 文件,找到对应 OLED型号的函数,这里用到的是u8g2_Setup_ssd1306_i2c_128x64_noname_f ,保留这个函数,其他删除掉或者注释掉。
1234567891011#include "u8g2.h"/* ...
嵌入式实践实习
嵌入式实践实习知识
大二下时长一周半多半周的嵌入式实习,由粤嵌的工程师教授知识。
环境及工具:Ubuntu 18.04,arm-linux-gcc 5.4.0,粤嵌GEC6818开发板
以下是此次实习中get到的一下知识以及遇到的一些问题。
2023.05.09
gcc : c语言编译器
g++ : c++编译器
gdb : c/c++调试器
binutils : 二进制工具集
MinGW : MinGW 是让Windows 用户可以用上 GNU 工具,比如GCC。
Cygwin : Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。
如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。
如果程序还用到了POSIX API,则只能用Cygwin 编译。
cmd 输入 sysdm.cpl 打开环境变量设置
cygwin64 和 MinGW 的 gcc 和 g++ 只能有一个能使用,不能同时使用。
通过修改环境变量的优先级 顺序从上到下, ...