AIGC与Aidlux的互联应用----Aidlux端的AIGC测评

今年人工智能大火,那自然相关的应用也会衍生出来,AIGC就是其中之一。

AIGC是指“人工智能生成”(Artificial Intelligence Generated Content)的缩写。人工智能生成是指应用人工智能技术,如自然语言处理、机器学习和计算机视觉等,自动地生成各种类型的内容,如文字、图像、音频和视频等。

本文主要简单讲述Stable Diffusion,Stable Diffusion是一种基于扩散过程的概率图模型,用于建模连续时间的动态系统,并进行预测和推断。我们将会使用Stable Diffusion来生成各种各样的图片,然后通过PC端和AidLux间的通信,将图片传输到AidLux进行测评。

部分代码展示,以下是在PC端运行的通信代码

​
import socket
import time
import cv2
import numpy
import copy

def ReceiveVideo():
    # IP地址'0.0.0.0'为等待客户端连接
    address = ('192.168.0.101', 9023)
    # 建立socket对象,参数意义见https://blog.csdn.net/rebelqsp/article/details/22109925
    # socket.AF_INET:服务器之间网络通信
    # socket.SOCK_STREAM:流式socket , for TCP
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 将套接字绑定到地址, 在AF_INET下,以元组(host,port)的形式表示地址.
    s.bind(address)
    # 开始监听TCP传入连接。参数指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为1,大部分应用程序设为5就可以了。
    s.listen(5)

    def recvall(sock, count):
        buf = b''  # buf是一个byte类型
        while count:
            # 接受TCP套接字的数据。数据以字符串形式返回,count指定要接收的最大数据量.
            newbuf = sock.recv(count)
            if not newbuf: return None
            buf += newbuf
            count -= len(newbuf)
        return buf

    # 接受TCP连接并返回(conn,address),其中conn是  新的套接字对象,可以用来接收和发送数据。addr是连接客户端的地址。
    # 没有连接则等待有连接
    conn, addr = s.accept()
    print('connect from PC:' + str(addr))
    if 1:
        start = time.time()  # 用于计算帧率信息
        length = recvall(conn, 16)  # 获得图片文件的长度,16代表获取长度
        stringData = recvall(conn, int(length))  # 根据获得的文件长度,获取图片文件
        data = numpy.frombuffer(stringData, numpy.uint8)  # 将获取到的字符流数据转换成1维数组
        decimg = cv2.imdecode(data, cv2.IMREAD_COLOR)  # 将数组解码成图像
        cv2.imwrite("girl.jpg",decimg)
        print("save image ")
        # cv2.imshow('SERVER', decimg)  # 显示图像
        # cv2.waitKey(2000)
        #
        # # 进行下一步处理
        # # 。
        # # 。
        # # 。
        #
        # # 将帧率信息回传,主要目的是测试可以双向通信
        end = time.time()
        seconds = end - start
        fps = 1 / seconds
        ##返回已处理图像到客户端
        conn.send(bytes(str(int(fps)), encoding='utf-8'))
        # image = copy.deepcopy(decimg)
        # encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), 100]
        # result, imgencode = cv2.imencode('.jpg', image, encode_param)
        # # 建立矩阵
        # data = numpy.array(imgencode)
        # # 将numpy矩阵转换成字符形式,以便在网络中传输
        # img_Data = data.tostring()

        # # 先发送要发送的数据的长度
        # # ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串
        # conn.send(str.encode(str(len(img_Data)).ljust(16)))
        # # # print(img_Data)
        # # # 发送数据
        # conn.send(img_Data)

        # if cv2.waitKey(10) & 0xff == 27:
        #     break
    s.close()
    # cv2.destroyAllWindows()

if __name__ == '__main__':
    ReceiveVideo()


​

图片成功从PC端传到AidLux端

 在AidLux我们启用我们的测评代码,测评部分我们还是使用yolov5网络对图片进行测评

以下是整个流程的视频展示

AIGC测评视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值