Photoprism 开源相册的搭建教程

图片[1]-Photoprism 开源相册的搭建教程-零度博客

我选择用官方的Docker-Compose安装方案:

  • 1.下载配置文件

# 路径仅供参考
mkdir /home/ubuntu/photoprism
cd /home/ubuntu/photoprism
wget https://dl.photoprism.org/docker/docker-compose.yml
vi /home/ubuntu/photoprism/docker-compose.yml

2.修改配置内容


version: '3.5'
services:
  photoprism:
    # 使用预览版本:
    image: photoprism/photoprism:preview
    # 开机自启动
    restart: unless-stopped
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    ports:
      - 2342:2342
    environment:
      #设置登录密码
      PHOTOPRISM_ADMIN_PASSWORD: "xxxxxx"            # PLEASE CHANGE: Your initial admin password (min 4 characters)
      PHOTOPRISM_HTTP_PORT: 2342                     # Built-in Web server port
      PHOTOPRISM_HTTP_COMPRESSION: "gzip"            # Improves transfer speed and bandwidth utilization (none or gzip)
      PHOTOPRISM_DEBUG: "false"                      # Run in debug mode (shows additional log messages)
      PHOTOPRISM_PUBLIC: "false"                     # No authentication required (disables password protection)
      PHOTOPRISM_READONLY: "false"                   # Don't modify originals directory (reduced functionality)
      PHOTOPRISM_EXPERIMENTAL: "false"               # Enables experimental features
      PHOTOPRISM_DISABLE_WEBDAV: "false"             # Disables built-in WebDAV server
      PHOTOPRISM_DISABLE_SETTINGS: "false"           # Disables Settings in Web UI
      PHOTOPRISM_DISABLE_TENSORFLOW: "false"         # Disables using TensorFlow for image classification
      PHOTOPRISM_DARKTABLE_PRESETS: "false"          # Enables Darktable presets and disables concurrent RAW conversion
      PHOTOPRISM_DETECT_NSFW: "false"                # Flag photos as private that MAY be offensive (requires TensorFlow)
      PHOTOPRISM_UPLOAD_NSFW: "true"                 # Allow uploads that MAY be offensive
      # PHOTOPRISM_DATABASE_DRIVER: "sqlite"         # SQLite is an embedded database that doesn't require a server
      PHOTOPRISM_DATABASE_DRIVER: "mysql"            # Use MariaDB (or MySQL) instead of SQLite for improved performance
      PHOTOPRISM_DATABASE_SERVER: "mariadb:3306"     # MariaDB database server (hostname:port)
      PHOTOPRISM_DATABASE_NAME: "photoprism"         # MariaDB database schema name
      PHOTOPRISM_DATABASE_USER: "photoprism"         # MariaDB database user name
      PHOTOPRISM_DATABASE_PASSWORD: "insecure"       # MariaDB database user password
      PHOTOPRISM_SITE_URL: "http://localhost:2342/"  # Public PhotoPrism URL
      PHOTOPRISM_SITE_TITLE: "PhotoPrism"
      PHOTOPRISM_SITE_CAPTION: "Browse Your Life"
      PHOTOPRISM_SITE_DESCRIPTION: ""
      PHOTOPRISM_SITE_AUTHOR: ""
    volumes:
      # 映射原始文件存储目录为挂载的对象存储的Bucket
      - "/mnt/photoprism/pictures:/photoprism/originals"
      # 缓存、索引文件,可映射到对象存储Bucket
      - "/mnt/photoprism/storage:/photoprism/storage"

  mariadb:
    image: mariadb:10.5
    restart: unless-stopped
    security_opt:
      - seccomp:unconfined
      - apparmor:unconfined
    command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=50
    volumes: 
      # 数据库文件存储在宿主机/home/ubuntu/photoprism/database下
      - "./database:/var/lib/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: please_change
      MYSQL_DATABASE: photoprism
      MYSQL_USER: photoprism
      MYSQL_PASSWORD: insecure

  # 开启自动更新
  watchtower:
    image: containrrr/watchtower
    restart: unless-stopped
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"

3.运行docker-compose


docker-compose -f /home/ubuntu/photoprism/docker-compose.yml up -d

4. 反向代理
部署完成后,相关的反向代理可以参考官方文档 https://docs.photoprism.org/getting-started/proxies/nginx/ ,我这里做了一些修改,主要是使用了SSL证书做了https重定向。


server{
        listen 443 ssl;
        server_name xxxx;  #自定义域名
        ssl_certificate /etc/nginx/cert/xxxx.pem; #SSL证书 pem
        ssl_certificate_key /etc/nginx/cert/xxxx.key; #SSL证书 key
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        client_max_body_size 0;
        location / {
                proxy_pass http://127.0.0.1:2342;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_buffering off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}
server{
        listen 80;
        server_name xxxx;   #自定义域名
        rewrite ^/(.*)$ https://xxxxx/$1 permanent;  #自定义域名
}

5. Web访问
使用反向代理的域名登录PhotoPrism后,就可以创建相册, 然后上传照片了。第一次使用,上传完成后,可以手动做一次索引,以后使用每15分钟会自动索引。关于索引更多的内容可以看官方文档 https://docs.photoprism.org/user-guide/library/indexing/

PhotoPrism支持分辨率的自适应,也就是说不论在PC、平板还是手机,都可以访问使用。同时可以看到PhotoPrism丰富的菜单栏和照片分类方式,包括基于时间线的日历、基于AI的Tag分类、基于地理位置的分类。虽然目前还没有基于人脸识别的分类,但在RoadMap上已经安排上了,

相信很快就会发布。

图片[2]-Photoprism 开源相册的搭建教程-零度博客

图片[3]-Photoprism 开源相册的搭建教程-零度博客

5. APP同步手机照片

使用Web访问,可以导入历史照片数据,但手机照片的备份还需要APP配合使用。PhotoPrism官方提供了APP,使用Flutter开发,但目前还处于非常初期的阶段,功能不完善,并且与当前版本的后台还不兼容。虽然已经有Contributor提供了的方案和PR,但还没有被合并。安装使用后,发现只有最基本的照片查看和相册管理,没有分类视图,自动上传手机照片也是实验性功能,不能在后台工作。看来一段时间内,都很难用官方的APP来满足实际需求了。不过可以预见的是,等Google Photo开始收费后,这个项目会被越来越多的人关注,如果有擅长Flutter的小伙伴,不妨加入Contributors的队伍啊,毕竟现在才有9人。

图片[4]-Photoprism 开源相册的搭建教程-零度博客

方案2:轻量服务器+对象存储+PhotoSync App

因为方案1没有很好的解决手机照片同步的问题,所以又在寻找官方APP的替代品。

这里看到官方文档推荐了使用Photo Sync来作为同步APP,这是一款比较成熟的跨平台照片同步产品,支持FTP、WebDAV等多种协议的数据传输。因为PhotoPrism支持WebDAV协议,所以只需要对PhotoSync进行WebDAV服务器的设置,就可以实现手机相片同步了。

不过PhotoSync要使用自动备份功能,如充电时同步、拍照后同步、连接到指定WIFI后同步等,需要付费购买插件,大概20大洋左右,而且安卓APP没有中文。不过使用这样的方案组合,在官方APP没有完善之前,确实满足了需求。只是在APP上没办法像使用WEB那样查看照片分类,只能用手机访问WEB进行查看,算是一个遗憾了。

图片[5]-Photoprism 开源相册的搭建教程-零度博客

方案3:轻量服务器+OneDrive

方案1、2已经可以满足需求了,但折腾一圈之后发现成本有点高。

  • OneDrive:229/年,6人分摊后40/年
  • 轻量服务器:800/年,5人分摊后160/年
  • 对象存储500G:600/年
  • 对象存储请求次数:按量付费
  • 对象存储外网下行流量:与轻量服务器同区域可免外网流量

整套下来一年800多一年,比SaaS产品和NAS都贵多了。然后对象存储请求次数,官方定义为使用API或SDK上传、下载、删除等操作对象存储均会产生请求次数。因为对象存储是挂载到服务器的,所有的操作本质上还是调用了对象存储的接口,几百G的照片上传,索引,分分钟百万千万的请求次数,虽然请求次数很便宜,几十万次数才几块钱,但羊毛薅多了也顶不住啊。

图片[6]-Photoprism 开源相册的搭建教程-零度博客

所以回归到成本角度,还是败给了Money,于是考虑降本方案。

我是在方案2搭建完成后,开始考虑怎么把OneDrive的数据同步过来。如果先下载到本地电脑,再上传云服务器,除了OneDrive那个下载速度本来就很玄学不说,这样一来一回400多G,实在是太傻了。所以就找到了rclone这个项目,它支持灰常灰常多的数据存储产品之间同步。其中少不了OneDrive,根据官方文档介绍https://rclone.org/onedrive/ 很容易就实现了数据从OneDrive直接同步到云服务器。因为服务器在香港,所以速度也比下载到本地电脑快不少。

图片[7]-Photoprism 开源相册的搭建教程-零度博客

正是在使用rclone的时候,无意中看到它还支持把上面这些存储产品作为磁盘挂载到主机,那也就是说我可以直接挂载OneDrive作为存储,这样以来对象存储什么的都不要了,连旧数据的同步都免了,真香啊!操作起来:

1. 安装rclone

在轻量服务器上安装rclone,参考官方文档 https://rclone.org/install/ ,linux一键脚本

curl https://rclone.org/install.sh | sudo bash

2. 配置OneDrive

<pre class=”line-numbers”><code class=”language-markup”>

# 输入命令 remote config
# 输入n,新建config
# 输入onedrive,作为配置名称
# 输入26,选择OneDrive引擎
# 回车,默认client_id
# 回车, 默认client_secret
# 输入1, 选择 Microsoft Cloud Global
# 回车, 不进行advanced config
# 输入n, 不使用auto config

# 随后出现以下内容
For this to work, you will need rclone available on a machine that has
a web browser available.

For more help and alternate methods see: https://rclone.org/remote_setup/

Execute the following on the machine with the web browser (same rclone
version recommended):

	rclone authorize "onedrive" #用于远程配置

Then paste the result below:
result>

</code></pre>

因为轻量服务器没有GUI,所以没法打开浏览器进行访问,所以在配置的最后一步,选择了n,进入了上面的result等待界面,这时候需要远程完成rclone的配置。详细信息可参考官方文档 https://rclone.org/remote_setup/,我这里简单陈述步骤。

  • 在任何可以打开浏览器的电脑,最好是Linux系统进行操作,可以用虚拟机,这里我选择了本地电脑的WSL

<pre class=”line-numbers”><code class=”language-markup”>

# 安装rclone
curl https://rclone.org/install.sh | sudo bash
# 此处使用result等待界面的命令
rclone authorize "onedrive" 

# 根据提示打开浏览器访问网址,会引导登录OneDrive
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
# 登录成功后,复制Paste the following into your remote machine提示后的一段内容
Got code
Paste the following into your remote machine --->
SECRET_TOKEN
<---End paste

</code></pre>

  • 粘贴复制内容到轻量服务器result,完成rclone配置,此时在轻量服务器执行命令

<pre class=”line-numbers”><code class=”language-markup”>

rclone config
# 可展示已经存在的配置
Current remotes:
Name                 Type
====                 ====
onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> 

</code></pre>

<pre class=”line-numbers”><code class=”language-markup”>

rclone lsd onedrive:
# 可看到OneDrive内的文件夹

</code></pre>

3. 方案设计

在挂载OneDrive之前,需要先了解PhotoPrism和OneDrive的一些特性,才能设计挂载的方案:

  • PhotoPrism上传文件后自动索引,仅在WebDAV协议下生效。也就是说它是通过监听协议来触发自动索引的,不论是PhotoPrism的Web,还是它官方的APP,还是前文中介绍的PhotoSync,都是基于WebDAV协议来实现文件上传的。手动拷贝文件到PhotoPrism的Originals文件夹,并不会触发自动索引。而我们使用的是OneDrive作为磁盘挂载的方案,在PhotoPrism的Web上传图片没有什么影响,是会自动索引的。但使用OneDrive的APP同步手机照片上来,就没办法走WebDAV的协议来触发索引了。当然你可以使用PhotoSync来作为手机照片同步工具,但既然用了OneDrive的方案,能不能用OneDrive的APP来实现手机照片同步,并且完成索引呢。关于更多自动索引的讨论可以看官方issues https://github.com/photoprism/photoprism/issues/281图片[8]-Photoprism 开源相册的搭建教程-零度博客
  • PhotoPrism手动创建索引有两种方式:一种是前文中介绍过的通过Web来创建索引,另一种是通过命令行执行命令来创建索引。而命令行创建索引又有两个不同的模式选项:一个是重新索引文件,包括未更改的文件。另一个是清除所有的索引和缩略图后重新索引。照片文件被索引的过程包括通过TensorFlow进行分类,解析地理位置,解析时间等,随后生成索引文件,最后还要生成缩略图存储在缓存文件中。正是因为步骤繁琐,所以第一次索引时间会很久,而后续索引因为已经存在缩略图等缓存文件,所以就快一些。那么也就意味着命令行创建索引,使用cleanup的参数会更彻底一些,但速度也会更慢一些。
  • <pre class=”line-numbers”><code class=”language-markup”>
    photoprism index --help            
    NAME:
       photoprism index - Indexes media files in originals folder
    
    USAGE:
       photoprism index [command options] [arguments...]
    
    OPTIONS:
       --all, -a  re-index all originals, including unchanged files
       --cleanup  removes orphan index entries and thumbnails

    </code></pre>

  • PhotoPrism的Import功能是把指定的Import目录下的文件导入到Originals文件夹,并进行索引,然后删除Import目录下的文件。一般用于导入大量的历史数据。也可以用于定时导入新增数据,因为Import文件夹一般数据比较少,而且导入完就可以删除,不需要索引整个Originals文件夹,索引时间不会很久。导入的方式也有两种,一个是控制台,另一个是命令行。图片[9]-Photoprism 开源相册的搭建教程-零度博客

    <pre class=”line-numbers”><code class=”language-markup”>

    photoprism import --help
    NAME:
       photoprism import - Moves files to originals folder, converts and indexes them as needed
    
    USAGE:
       photoprism import [arguments...]

    </code></pre>

  • OneDrive同步手机照片到云端的路径是默认的,如我的路径是默认在“OneDrive/图片/本机照片”下,无法手动选择。但可以移动这个默认目录并且重命名,如我移动了该目录并改名为“OneDrive/Camera”,实测以前上传的照片没有丢失,而新同步的照片就到了这个目录下。需要注意的是微软官方并不建议移动和修改这个文件夹的名称。所以提醒各位风险需要自行评估。

基于以上特性,最终设计的方案就是:

  • 使用OneDrive APP进行手机照片的同步(如果使用PhotoSync作为同步APP,则可以跳过第7步,无需做定时任务。但考虑到尽可能少引入工具,这里使用了OneDrive APP来同步手机照片)
  • 使用PC或手机访问PhotoPrism的Web查看照片
  • 在OneDrive下新建一个文件夹photoprism,挂载到服务器/mnt/onedrive/originals,并映射docker的/photoprism/originals目录,用于photoprism的原始照片存储
  • 将OneDrive同步手机照片的默认文件夹,挂载到服务器/mnt/onedrive/import,并映射docker的`/photoprism/import目录,用于photoprism定期导入
  • 在服务器执行import命令,将OneDrive的历史照片导入并完成索引
  • 在服务器新建定时任务,定期执行import命令,将OneDrive新同步的照片导入并完成索引

4. 挂载OneDrive

  • 创建目录

<pre class=”line-numbers”><code class=”language-markup”>

mkdir /mnt/onedrive/originals
mkdir /mnt/onedrive/import

</code></pre>

  • 创建服务

<pre class=”line-numbers”><code class=”language-markup”>

vi /etc/systemd/system/rclone-import.service
# -------------------内容如下--------------------------
[Unit]
Description=Rclone
After=network-online.target

[Service]
Type=simple
ExecStart=rclone --vfs-cache-mode full mount onedrive:/camera /mnt/onedrive/import # 将OneDrive同步手机照片的默认文件夹,挂载到服务器/mnt/onedrive/import,并映射docker的/photoprism/import目录,用于photoprism定期导入
Restart=on-abort
User=root

[Install]
WantedBy=default.target
# ----------------------END---------------------------

vi /etc/systemd/system/rclone-originals.service
# -------------------内容如下--------------------------
[Unit]
Description=Rclone
After=network-online.target

[Service]
Type=simple
ExecStart=rclone --vfs-cache-mode full mount onedrive:/photoprism /mnt/onedrive/originals # 在OneDrive下新建一个文件夹photoprism,挂载到服务器/mnt/onedrive/originals,并映射docker的/photoprism/originals目录,用于photoprism的原始照片存储
Restart=on-abort
User=root

[Install]
WantedBy=default.target
# ----------------------END---------------------------

</code></pre>

  • 启动服务

<pre class=”line-numbers”><code class=”language-markup”>

# 开机执行服务自动挂载
systemctl enable rclone-originals
systemctl enable rclone-import
# 启动服务
systemctl start rclone-originals
systemctl start rclone-import
# 查看服务状态
systemctl status rclone-originals
systemctl status rclone-import

</code></pre>

  • 取消挂载

<pre class=”line-numbers”><code class=”language-markup”>

# 停止服务
systemctl stop rclone-originals
systemctl stop rclone-import
# 解除挂载
fusermount -qzu /mnt/onedrive/originals
fusermount -qzu /mnt/onedrive/import

</code></pre>

5. 修改PhotoPrism配置文件

  • 见方案1,修改了dockerfile volume部分

<pre class=”line-numbers”><code class=”language-markup”>

volumes:
      # Your photo and video files ([local path]:[container path]):
      - "/mnt/onedrive/originals:/photoprism/originals"  
      # Multiple folders can be indexed by mounting them as sub-folders of /photoprism/originals:
      #- "/mnt/gallery/family:/photoprism/originals/Family"    # [folder_1]:/photoprism/originals/[folder_1]
      #- "/mnt/gallery/friends:/photoprism/originals/Friends"  # [folder_2]:/photoprism/originals/[folder_2]
      # Mounting an import folder is optional (see docs):
      - "/mnt/onedrive/import:/photoprism/import"
      # Permanent storage for settings, index & sidecar files (DON'T REMOVE):
      - "./storage:/photoprism/storage"

</code></pre>

  • 重启容器
<pre class="line-numbers"><code class="language-markup">
docker-compose -f /home/ubuntu/photoprism/docker-compose.yml up -d
</code></pre>

6. 索引历史数据

PhotoPrism搭建完成后,需要把历史数据全部导入。跟前文提到的一样,有两种方式

  • 手动操作:登录Web,进入“库”,进入“导入”页面,勾选“移动文件”,点击“导入”
  • 命令行操作

<pre class=”line-numbers”><code class=”language-markup”>

docker exec -it photoprism_photoprism_1 /photoprism/bin/photoprism import

</code></pre>

我有200G的历史数据图片,每个图片索引差不多需要5-8秒,服务器CPU飚的飞起。以为是因为挂载OneDrive网络性能不足,导致索引很慢。不得不说,性能多少有影响,但索引步骤复杂,终究需要一些时间。所以让子弹飞一会吧,最终花了差不多3天时间才全部导入并索引完成。

图片[10]-Photoprism 开源相册的搭建教程-零度博客

7. 创建定时任务

前文也提到过,手动拷贝文件PhotoPrism不会自动索引,那我们通过OneDrive APP同步的手机照片就需要定期做同步并完成索引。这里就可以创建一个定时任务

<pre class=”line-numbers”><code class=”language-markup”>

crontab -e
# 设置每天晚上1点自动导入
0 1 * * * /usr/bin/docker exec photoprism_photoprism_1 /photoprism/bin/photoprism import

</code></pre>

方案3使用了OneDrive作为存储,手机照片同步依然用回OneDrive,与之前的备份习惯无缝衔接。当然,OneDrive APP不能访问PhotoPrism,如果需要看照片,还是需要通过手机浏览器访问Web,短期内没有什么影响。等官方的APP完善后,就可以使用官方APP来进行照片同步,也就不需要定时导入和索引了。

至此,基于轻量云服务器的云相册搭建完成了。

THE END
喜欢就支持一下吧
点赞2251 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

谷歌试图公开羞辱苹果采用 RCS-零度博客

谷歌试图公开羞辱苹果采用 RCS

谷歌今天启动了一项新的宣传活动,以迫使苹果采用 RCS,这是一种跨平台消息传递协议,旨在成为老化的 SMS 和 MMS 标准的继承者。   这家搜索巨头有一个新的“Get The Message”网站,围绕 ...
admin的头像-零度博客admin
01.6W+2250
“阎罗王”敲诈勒索病毒解密工具+使用教程!-零度博客

“阎罗王”敲诈勒索病毒解密工具+使用教程!

  阎罗王敲诈勒索病毒解密工具,由卡巴斯基提供:【点击下载】   具体的使用教程如下:【官方教程】 RannohDecryptor 工具旨在解密由以下勒索软件加密的文件: 木马-Ransom.Win32.Ran...
admin的头像-零度博客admin
01.7W+2250
震撼!Optimus Gen2 人形机器人发布,对比波士顿动力机器人,看到了AGI 人工智能的未来 | 零度解说-零度博客

震撼!Optimus Gen2 人形机器人发布,对比波士顿动力机器人,看到了AGI 人工智能的未来 | 零度解说

https://youtu.be/IwsifURDDoM ============= AI 智能机器人射击的完整视频、制作:https://www.freedidi.com/11122.html  
admin的头像-零度博客admin
1.6W+1682
从网上删除自己个人信息所需要的网站-零度博客

从网上删除自己个人信息所需要的网站

1.YourDigitalRights:https://yourdigitalrights.org 2.Google搜索移除工具:【点击前往】 3.Justdelete:【点击前往】 4.have I been pwned:【点击前往】 5.Facebook 账号永久删除:【点击前...
admin的头像-零度博客admin
01.5W+2251
Photoshop美颜磨皮插件Imagenomic Portraiture 3.5.4 Win/Mac开心版-零度博客

Photoshop美颜磨皮插件Imagenomic Portraiture 3.5.4 Win/Mac开心版

Imagenomic已发布适用于Photoshop的Imagenomic Portraiture 3.5.4插件。 下一代皮肤平滑,修复和增强软件建立在版本2的技术之上, 速度和性能提高了一倍,并且输出质量细化可产生一致且令人愉悦...
Process Hacker – 增强版 Windows任务管理器-零度博客

Process Hacker – 增强版 Windows任务管理器

Process Hacker 是一个完全免费开源的、强大的、多用途的工具,帮助你监控系统资源,调试软件和检测恶意软件。 Process Hacker – 增强版任务管理器 作为一个 Windows 用户,用的软件一多,难免...
admin的头像-零度博客admin
01.6W+2251
LANDrop 目前用过最最好用的跨平台传输工具!完全免费开源-零度博客

LANDrop 目前用过最最好用的跨平台传输工具!完全免费开源

LANDrop 是我目前用过最最好用的跨平台传输工具!它会自动检测同一 Wi-Fi 网络上的其他 LANDrop 设备,因此您无需手动输入 IP 地址。LANDrop 会在后台处理一切——就像一个跨平台的 AirDrop 一...
admin的头像-零度博客admin
02.8W+4488
微软推出最新视觉基础模型Florence-2 ,可在WebGPU的浏览器独立运行!-零度博客

微软推出最新视觉基础模型Florence-2 ,可在WebGPU的浏览器独立运行!

Florence-2:微软全新开源视觉模型! 能够执行超过10种不同的视觉任务 包括图像字幕生成、对象检测、图像区域关联和分割等。 它不仅能描述图片的内容,还能识别图片中的物体,并指出这些物体的...
admin的头像-零度博客admin
2W+2176
8款非常值得推荐的免费精品软件!2022-零度博客