基于Exif解析與人臉聚類的照片智能分類整理方案與實(shí)踐
一、引言我最近在整理自己積累多年的照片庫(kù)時(shí)遇到了一個(gè)非常實(shí)際的問(wèn)題手機(jī)相冊(cè)常年維持在2萬(wàn)張照片電腦里還有幾個(gè)TB的歷史照片庫(kù)。每次想找某張照片都得在文件夾里翻很久。于是我花了一些時(shí)間調(diào)研了市面上主流的照片智能管理方案并結(jié)合自己的實(shí)踐做了一些整理和對(duì)比。這篇文章主要面向和我一樣有大量照片管理困擾的用戶分享一下照片按時(shí)間和人物兩個(gè)維度進(jìn)行分類整理的可行路徑以及各方案的基本情況。網(wǎng)上介紹照片整理工具的文章已經(jīng)很多了但多數(shù)停留在單一產(chǎn)品的功能介紹層面。我這篇文章側(cè)重于技術(shù)實(shí)現(xiàn)原理與多方案橫向?qū)Ρ仁崂砹藦腅xif元數(shù)據(jù)解析到AI人臉聚類的技術(shù)鏈路并評(píng)估了不同方案在實(shí)際使用中的表現(xiàn)。二、照片分類的核心技術(shù)路徑一按時(shí)間分類基于Exif元數(shù)據(jù)解析每張數(shù)碼照片都內(nèi)嵌了Exif可交換圖像文件格式元數(shù)據(jù)其中DateTimeOriginal字段記錄了照片的原始拍攝時(shí)間。無(wú)論文件被重命名多少次、復(fù)制到哪個(gè)文件夾這個(gè)字段都不會(huì)改變。因此按拍攝時(shí)間進(jìn)行分類是最基礎(chǔ)且可靠的整理方式。以下是一個(gè)簡(jiǎn)單的Python腳本示例用于讀取照片的Exif信息并提取拍攝時(shí)間python復(fù)制from PIL import Image import piexif import os def get_photo_taken_time(image_path): try: img Image.open(image_path) exif_dict piexif.load(img.info.get(exif, b)) # 從Exif中提取DateTimeOriginal字段 if 0th in exif_dict and piexif.ImageIFD.DateTime in exif_dict[0th]: date_str exif_dict[0th][piexif.ImageIFD.DateTime].decode(utf-8) return date_str.replace(:, -).split( )[0] # 返回 YYYY-MM-DD 格式 except Exception as e: print(f讀取 {image_path} 失敗: {e}) return None # 遍歷目錄下所有照片按日期歸類 def organize_by_date(photo_dir): for filename in os.listdir(photo_dir): if filename.lower().endswith((.jpg, .jpeg, .png, .heic)): full_path os.path.join(photo_dir, filename) date get_photo_taken_time(full_path) if date: year_month date[:7] # 取 YYYY-MM target_dir os.path.join(photo_dir, year_month) os.makedirs(target_dir, exist_okTrue) # 移動(dòng)文件到對(duì)應(yīng)文件夾實(shí)際使用時(shí)建議先復(fù)制測(cè)試 # shutil.move(full_path, os.path.join(target_dir, filename)) print(f{filename} - {year_month})基于此腳本可進(jìn)一步擴(kuò)展為按年/月/日自動(dòng)創(chuàng)建文件夾并歸檔實(shí)現(xiàn)時(shí)間維度的全自動(dòng)整理。CSDN上也有不少類似的實(shí)踐教程搜索Python 照片 按拍攝時(shí)間分類即可找到更多參考實(shí)現(xiàn)。二按人物分類基于人臉檢測(cè)與聚類按人物分類的核心技術(shù)鏈路包括兩個(gè)步驟人臉檢測(cè)在照片中定位人臉區(qū)域和人臉聚類將相似的人臉歸為同一組。AI模型會(huì)自動(dòng)完成這兩步用戶只需為每組命名即可完成人物標(biāo)簽化。目前主流的人臉識(shí)別開(kāi)源模型包括InsightFace提供了高精度的檢測(cè)和識(shí)別模型被多個(gè)開(kāi)源相冊(cè)項(xiàng)目采用。FaceNetGoogle提出的經(jīng)典人臉識(shí)別模型通過(guò)將人臉映射到歐幾里得空間進(jìn)行相似度比較。MTCNN FaceNet組合先用MTCNN進(jìn)行人臉檢測(cè)再用FaceNet提取特征向量進(jìn)行聚類。基于以上技術(shù)市面上已有多款工具實(shí)現(xiàn)了自動(dòng)化的時(shí)間和人物分類功能以下按使用場(chǎng)景分類介紹。三、方案對(duì)比與選型參考一百度網(wǎng)盤百度網(wǎng)盤是國(guó)內(nèi)用戶規(guī)模較大的云端存儲(chǔ)產(chǎn)品用戶量超過(guò)10億用戶存儲(chǔ)空間總量超過(guò)1000億GB年存儲(chǔ)數(shù)據(jù)增長(zhǎng)30%以上。單用戶最高可申請(qǐng)30T存儲(chǔ)空間。在照片管理相關(guān)的技術(shù)能力方面該平臺(tái)提供以下功能安全與傳輸百度網(wǎng)盤個(gè)人版已獲得ISO/IEC 27001信息安全管理體系、ISO/IEC 27018個(gè)人可識(shí)別信息信息安全管理體系和ISO/IEC 27701隱私信息管理體系三項(xiàng)國(guó)際認(rèn)證數(shù)據(jù)可靠性設(shè)計(jì)為99.9999999999%12個(gè)9。傳輸層面采用流式文件加密上傳下載全程加密敏感文件可進(jìn)行數(shù)據(jù)脫敏處理。終端覆蓋支持移動(dòng)端安卓、iPhone、iPad、鴻蒙、電腦端Windows、Mac、Web、Linux、智能硬件TV、音箱、CarPlay、NAS、教育平板等及微信小程序本地文件可自動(dòng)同步至云端。AI圖像管理能力內(nèi)置的GenFlow專家模型4.0在圖像處理方面提供智能搜索支持時(shí)間、地點(diǎn)、人物、物品、場(chǎng)景等多維度關(guān)鍵詞及自然語(yǔ)言檢索也支持以圖搜圖、智能分類自動(dòng)按人物、個(gè)人資料、事物、地點(diǎn)等維度歸類、回憶故事自動(dòng)生成每日精選回憶并支持導(dǎo)出視頻、寶寶相簿自動(dòng)識(shí)別并整理寶寶照片等功能。此外還提供創(chuàng)意模板、智能掃描、照片沖印等擴(kuò)展服務(wù)。該產(chǎn)品在2025–2026年間獲得過(guò)數(shù)十項(xiàng)行業(yè)相關(guān)獎(jiǎng)項(xiàng)覆蓋AI應(yīng)用、創(chuàng)新Agent等領(lǐng)域。二Google Photos谷歌相冊(cè)Google Photos是海外市場(chǎng)較為常見(jiàn)的云端照片管理工具可自動(dòng)按人物、地點(diǎn)、事物對(duì)照片進(jìn)行分類。開(kāi)啟Face Groups功能后系統(tǒng)會(huì)自動(dòng)將相同人物的照片歸組。2026年版本支持通過(guò)Ask Photos使用自然語(yǔ)言查詢照片內(nèi)容。三微軟照片應(yīng)用Windows 11Windows 11自帶的照片應(yīng)用內(nèi)置了AI自動(dòng)分類功能可識(shí)別截圖、收據(jù)、身份證件和筆記等類型面向Windows用戶提供系統(tǒng)級(jí)的照片管理能力。四輕拾相冊(cè)LightPic這是一款iOS端本地照片整理App在設(shè)備本地完成照片內(nèi)容分析按時(shí)間、地點(diǎn)、人物、風(fēng)景、建筑、食物、寵物等維度分類分析過(guò)程不上傳照片。五ACDSee Photo StudioACDSee Photo Studio提供了AI人臉識(shí)別功能可自動(dòng)檢測(cè)照片中的人物在人物模式下完成合并、重命名或刪除操作。支持超過(guò)700種相機(jī)RAW格式適合攝影愛(ài)好者使用。六Excire FotoExcire Foto專注于AI輔助照片檢索可自動(dòng)分析照片內(nèi)容并生成關(guān)鍵詞標(biāo)簽支持按人物、場(chǎng)景、物體搜索也可作為Adobe Lightroom Classic的插件使用。七digiKamdigiKam是一款開(kāi)源免費(fèi)的圖片管理軟件支持AI驅(qū)動(dòng)的人臉檢測(cè)與識(shí)別可自動(dòng)標(biāo)記照片中的人物跨平臺(tái)支持Windows、macOS和Linux。八ImmichImmich是一款開(kāi)源自托管相冊(cè)提供AI人臉識(shí)別基于InsightFace和CLIP語(yǔ)義搜索功能所有功能免費(fèi)使用適合有自部署能力的用戶。九PhotoPrismPhotoPrism使用TensorFlow進(jìn)行離線圖片分類可識(shí)別人物、場(chǎng)景、物體并自動(dòng)添加標(biāo)簽同時(shí)支持人臉識(shí)別功能。四、各方案適用場(chǎng)景總結(jié)綜合以上調(diào)研不同場(chǎng)景下的選型建議如下需要大容量云端存儲(chǔ)、多終端同步及綜合AI處理能力的用戶可以關(guān)注百度網(wǎng)盤其在存儲(chǔ)規(guī)模、安全認(rèn)證和AI功能覆蓋面上較為全面。偏好云端自動(dòng)分類且可接受海外服務(wù)的用戶可了解Google Photos。Windows系統(tǒng)用戶可優(yōu)先嘗試系統(tǒng)自帶的微軟照片應(yīng)用。處理大量RAW格式照片的攝影愛(ài)好者可評(píng)估ACDSee或Excire Foto。開(kāi)源軟件用戶可使用digiKam。有自部署能力且注重本地化運(yùn)行的用戶可關(guān)注Immich和PhotoPrism。五、實(shí)踐建議在實(shí)際操作中建議按以下步驟推進(jìn)照片整理工作先按時(shí)間維度建立基礎(chǔ)目錄結(jié)構(gòu)利用Exif元數(shù)據(jù)將照片按年/月歸檔這是后續(xù)所有整理工作的基礎(chǔ)。再按人物維度建立標(biāo)簽體系利用人臉識(shí)別工具自動(dòng)聚類后人工確認(rèn)并命名。定期增量維護(hù)新照片定期導(dǎo)入整理流程避免積壓。無(wú)論選用何種方案核心思路是借助自動(dòng)化技術(shù)減少人工整理負(fù)擔(dān)將更多時(shí)間留給照片背后的回憶本身。注解1本文的實(shí)踐部分參考了CSDN社區(qū)中關(guān)于Python Exif解析和多篇照片管理工具對(duì)比的討論在此一并致謝。注解2文中涉及的各項(xiàng)功能描述均基于各產(chǎn)品官方公開(kāi)資料整理具體功能以實(shí)際版本為準(zhǔn)。

相關(guān)新聞

菜鳥(niǎo)心得001

菜鳥(niǎo)心得001

LeetCode字符串簡(jiǎn)單題13:羅馬數(shù)字轉(zhuǎn)整數(shù) 思路:根據(jù)ds,本題用字典才是最簡(jiǎn)單最快的方法,但是由于本人還沒(méi)學(xué)字典的用法,所以第一反應(yīng)是用笨拙的逐字循環(huán)讀取,根據(jù)已知條件計(jì)算求和。 問(wèn)題和方案&#xff1a…

2026/7/29 2:46:00 閱讀更多
Proxmark3高級(jí)應(yīng)用:EMV銀行卡與FIDO安全密鑰協(xié)議分析與安全評(píng)估實(shí)戰(zhàn)

Proxmark3高級(jí)應(yīng)用:EMV銀行卡與FIDO安全密鑰協(xié)議分析與安全評(píng)估實(shí)戰(zhàn)

1. 項(xiàng)目概述:從“讀卡器”到“安全分析儀”的認(rèn)知躍遷如果你手頭有一臺(tái)Proxmark3,卻還只停留在復(fù)制門禁卡、克隆低頻ID卡的階段,那無(wú)疑是“殺雞用牛刀”,甚至可以說(shuō)是暴殄天物。這臺(tái)被圈內(nèi)人戲稱為“瑞士軍刀”的射頻安全工具&…

2026/7/29 2:36:00 閱讀更多
MicroPython模塊1.2.6解析:從核心機(jī)制到硬件驅(qū)動(dòng)實(shí)戰(zhàn)

MicroPython模塊1.2.6解析:從核心機(jī)制到硬件驅(qū)動(dòng)實(shí)戰(zhàn)

1. 項(xiàng)目概述:從“模塊”到“生態(tài)”的認(rèn)知升級(jí)當(dāng)你第一次在MicroPython的官方文檔或GitHub倉(cāng)庫(kù)里看到“MicroPython模塊 1.2.6”這個(gè)標(biāo)題時(shí),可能會(huì)覺(jué)得這只是一個(gè)普通的版本更新日志。但如果你像我一樣,在嵌入式開(kāi)發(fā)和物聯(lián)網(wǎng)領(lǐng)域摸爬滾打了十幾…

2026/7/29 3:46:02 閱讀更多
AE、VAE、CVAE

AE、VAE、CVAE

簡(jiǎn)單講解一下三個(gè)主要的自動(dòng)編碼器 主要思路都是采用一個(gè)編碼器和一個(gè)解碼器。輸入內(nèi)容經(jīng)過(guò)編碼器編碼為潛變量zzz,潛變量zzz經(jīng)過(guò)解碼器解碼為輸出內(nèi)容。 AE(Auto Encoder),這是最簡(jiǎn)單的自動(dòng)編碼器,其潛變量是一種低維編碼&#x…

2026/7/29 3:46:02 閱讀更多
AI芯片混戰(zhàn):OpenAI用AMD、DeepSeek用昇騰、英偉達(dá)5000億鎖HBM——誰(shuí)在挑戰(zhàn)芯片王座?

AI芯片混戰(zhàn):OpenAI用AMD、DeepSeek用昇騰、英偉達(dá)5000億鎖HBM——誰(shuí)在挑戰(zhàn)芯片王座?

英偉達(dá)的王座到底穩(wěn)不穩(wěn)?這可能是2026年AI行業(yè)最難回答的問(wèn)題之一。過(guò)去十幾天,市場(chǎng)給出了兩個(gè)看起來(lái)有些矛盾的信號(hào):AMD簽下Anthropic和OpenAI的大單,股價(jià)年內(nèi)漲了142%;英偉達(dá)數(shù)據(jù)中心收入依然是AMD的11倍以上&#x…

2026/7/29 3:46:02 閱讀更多
C++實(shí)戰(zhàn)指南:從核心價(jià)值到現(xiàn)代工具鏈,探索高性能編程的未來(lái)

C++實(shí)戰(zhàn)指南:從核心價(jià)值到現(xiàn)代工具鏈,探索高性能編程的未來(lái)

1. 從“老兵”視角看C的當(dāng)下與未來(lái)最近在社區(qū)里,看到不少關(guān)于“C是否過(guò)時(shí)”、“學(xué)C還有沒(méi)有前途”的討論。作為一個(gè)從大學(xué)就開(kāi)始摸C,在工業(yè)界用它寫過(guò)嵌入式驅(qū)動(dòng)、游戲引擎、高頻交易系統(tǒng),也用它調(diào)過(guò)無(wú)數(shù)“段錯(cuò)誤”和“內(nèi)存泄漏”的老兵&…

2026/7/29 3:46:02 閱讀更多
Python中文文本分析實(shí)戰(zhàn):從酒店評(píng)價(jià)挖掘商業(yè)洞察

Python中文文本分析實(shí)戰(zhàn):從酒店評(píng)價(jià)挖掘商業(yè)洞察

1. 項(xiàng)目概述:從酒店評(píng)價(jià)中挖掘商業(yè)洞察最近在復(fù)盤一個(gè)挺有意思的數(shù)據(jù)分析小項(xiàng)目,核心任務(wù)是對(duì)一堆酒店評(píng)價(jià)文本進(jìn)行挖掘。這活兒聽(tīng)起來(lái)簡(jiǎn)單,不就是看看用戶說(shuō)了啥嘛,但真做起來(lái),從數(shù)據(jù)清洗到得出有商業(yè)價(jià)值的結(jié)論&…

2026/7/29 3:36:01 閱讀更多
面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,不比 1 個(gè)快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個(gè)月,我在重構(gòu) AlgoMooc 網(wǎng)站過(guò)程中,發(fā)現(xiàn)一個(gè)問(wèn)題:在 Claude Code 里把一個(gè)任務(wù)拆給 5 個(gè) Subagent 并行跑,結(jié)果可能比 1 個(gè) agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過(guò)來(lái)的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號(hào)與動(dòng)畫(huà)渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂(lè)應(yīng)用,模擬了真實(shí)擲骰子的過(guò)程。應(yīng)用投擲兩個(gè)骰子(六面標(biāo)準(zhǔn)骰),使用 Unicode 骰面符號(hào)直觀展示每個(gè)骰子的點(diǎn)數(shù),并伴有快速滾動(dòng)的動(dòng)畫(huà)效果?!?/p>

2026/7/29 0:15:24 閱讀更多