使用 W5100S-EVB-Pico 和 Arducam 通过 AI 放大图像
转发: Upscaling image with AI using W5100S-EVB-Pico and Arducam
项目介绍
介绍
我看到了该链接,并想利用 Arducam、rp2040 和 W5100s 开展一个项目。 (https://github.com/Innovation4x/WIZnet-EVB-Pico-ArduCam)
我们要求 ChatGPT 总结现有 UCC 链接的内容,并创建一个可以链接到上述项目的 AI 项目。
正如您所看到的,chatgpt 建议使用 AI 来放大图像。
AI 模型
根据chatgpt的推荐,我查找了一些可以升级图像的模型,发现Real-ESRGAN模型是最好的。
https://github.com/xinntao/Real-ESRGAN
Real-ESRGAN 是一种人工智能模型,代表增强型超分辨率生成对抗网络。 它能够将低分辨率图像转换为高分辨率图像。
该模型基于生成对抗网络(GAN)的概念。 GAN 由生成器和判别器两个神经网络组成,它们在学习过程中相互竞争。 生成器的目的是产生与真实数据相似的假数据,而鉴别器的目的是区分生成的假数据和真实数据。 通过这个竞争过程,生成器逐渐生成与真实数据相似的数据,鉴别器也变得更擅长区分真数据和假数据。
ESRGAN 将这种 GAN 概念应用于超高分辨率图像的生成。 特别是,ESRGAN 相对于现有的 SRGAN(超分辨率生成对抗网络)有一些改进。 其中之一是使用一种称为“残差密集块中的残差”(RRDB) 的结构。 RRDB在现有的Residual Block的基础上增加了Dense Block,可以保留更多的信息,更好地再现图像的细节。
此外,Real-ESRGAN已经发展成为一种优化模型,能够通过与GFPGAN集成来支持面部增强,甚至可以恢复动画图像/视频。 通过该模型,可以进行各种项目以将低分辨率图像增强为高分辨率。
创造
W5100S PoE web camera - Hackster.io
请参阅上面的链接,通过将 W5100s-evb-pico 板与 arducam、CircuitPython 相结合来构建硬件,以使网络摄像头正常工作。
我们对 CircuitPython 库的 7.x 版使用了 Bundle,对于 Adafruit_CircuitPython_wiznet5k 库,我们使用了 1.12.15 发行版本。
https://circuitpython.org/libraries
https://github.com/ArduCAM/PICO_SPI_CAM/tree/master/Python
https://github.com/adafruit/Adafruit_CircuitPython_Wiznet5k/releases/tag/1.12.15
策展
我们将现有的流式传输方式改为捕捉方式,并尽可能降低分辨率以实现快速捕捉。
其余的在VS Code中进行。 代码是用 Python 编写的,我们保存了通过 Arducam 捕获的图像,然后将这些图像放大四倍。
这是使用 IU 图像进行放大的示例。
详细代码可以参考Github上。
https://github.com/WiznetAI/CCC_image_upscaling_esrgan_img2txt_with_GPT
下一步
虽然示例是人脸,但现实生活中使用的各种图像(而不仅仅是人)都可以进行自然放大。
作为下一个项目,我们正在考虑视频升级,并计划通过添加使用提供图像字幕的 AI 模型描述照片的功能来升级我们的功能。