這篇寫給喜歡拍照、照片多到挑不完的人,不用會寫程式。我請 Claude 從幾百張旅行照片裡挑出網站要放的幾張,這裡記下它怎麼挑,以及我怎麼確認它沒挑錯、沒寫錯。挑出來的照片在攝影與遊記。
Claude 是 Anthropic 做的 AI。我用的是 Claude Code,它在我的電腦上執行,可以直接打開外接硬碟裡的照片資料夾。文中的數字都是 2026-11-02 的狀態。
先講結論
AI 很適合做第一輪:幾百張照片排成縮圖,它很快就能分出好的、普通的、重複的。縮圖看不出來的事,要放大看或讀照片檔裡的資料;地點和有沒有人入鏡,不該讓它自己決定。
11 月 1 日我放了前兩趟遊記,11 月 2 日又放了三趟。過程中被抓到的錯,有一個是從縮圖猜出來的:一句寫錯的照片說明。近拍的照片,也都是放大看過對焦才留下。
為什麼挑照片最花時間
我的照片放在外接硬碟的「數位暗房」,一趟旅程一個資料夾。修好、匯出的完稿放在 RawJpg 資料夾。RAW 是相機存下的原始檔,要用修圖軟體調過才變成一般照片。網站上一趟只放幾張,配一段短短的遊記。
| 旅程 | 完稿照片 | 網站放的 |
|---|---|---|
| 九寨溝與黃龍 | 247 張,其中 11 張是人像,不選 | 14 張 |
| 三層坪 | 85 張 | 12 張 |
| 北埔大湖六塘落羽松 | 3 張,另有相機直出的 JPG 253 張 | 9 張 |
| 烏來內洞 | 13 張 | 8 張 |
| 象山看 101 夜景 | 6 張,另有一張合成照放在外層 | 6 張 |
挑照片累的不是按刪除,是要一張一張比:這張跟上一張差在哪、焦有沒有對到、有沒有拍到路人。我一開始只是問 Claude「我怎樣挑照片」,後來就變成請它直接幫我挑。
縮圖總覽:一次看一整批
縮圖總覽(contact sheet)是把一批照片縮小、排成格子,每格標上編號和檔名。Claude 一次看一張這種圖,一張排幾十張,最多 64 張。
同一個位置連拍的幾張排在一起,哪幾張重複一眼就看得出來。有編號也好溝通:九寨溝那趟它建議放 10 張,說明裡寫拿掉 #37、#56,因為跟其他張重複,我不用打開檔案就知道是哪兩張。檔名則讓它挑完能找回原檔。
請它打一到五顆星
第一天我問 Claude,能不能幫我沒評過的照片打一到五顆星。它的做法是看縮圖總覽、量每張的曝光和清晰度、讀拍攝參數,逐張評分;高星的和疑似失焦的,放大到原尺寸再確認。同一個位置連拍好幾張,只有最好的那張拿高星,其餘給 2 星。
| 旅程 | 張數 | 5 星 | 4 星 | 3 星 | 2 星 | 1 星 |
|---|---|---|---|---|---|---|
| 三層坪 | 85 | 4 | 20 | 26 | 33 | 2 |
| 九寨溝與黃龍 | 236 | 4 | 37 | 96 | 99 | 0 |
當時網站上的照片全在 4 星以上。我照它的建議調整:九寨溝換 2 張、加 2 張,三層坪換 1 張、加 2 張,兩趟都變成 12 張。拿到 1 星的兩張都在三層坪,一張光圈開到 f2.8、前景的樹幹沒對到焦,另一張頂端有一片失焦的葉子。
我想在 Mac 的 Finder 裡直接看到星等,Claude 就把它寫成 Finder 的標籤和註解:「5星」紅色、「4星」橙色,註解寫「Claude 評 N 星(2026-11-01):理由」,兩趟共 321 張,照片本身沒動。照片檔裡也有地方可以存星等(XMP,一種附在照片檔裡的資料),但 Finder 不顯示,搜尋也篩不出來,所以沒用。
挑選的規則
後面三趟(象山、內洞、落羽松)就照這幾條挑:
| 規則 | 實際的例子 |
|---|---|
| 先用完稿,不夠才用相機直出的 JPG | 落羽松那趟的完稿只有 3 張,其中兩張幾乎一樣,另外從相機直出的 JPG 補了 7 張 |
| 幾乎一樣的只留一張 | 象山有兩張合成照只差一點點,只放一張 |
| 遠景、近景都要有 | 落羽松有 17mm 廣角拍的整排倒影,也有 200mm 長鏡頭近拍的睡蓮 |
| 有人入鏡的先不放,等我決定 | 九寨溝的候選照都放大確認過沒有路人;內洞那趟有 6 張手機拍的我的背影,我說要放一張,選了 IMG_1020 裁得比較緊的修圖版;落羽松同一天的人像照沒放 |
| 地點不確定的不放 | 落羽松資料夾裡有 7 張手機照(芒草、水庫),不確定在哪裡拍的,沒放 |
相機直出的 JPG,是相機自己轉好的照片,沒經過我調色。
放大到 100% 看對焦
縮圖最騙人的是對焦。放大到 100%,就是照片的一個像素對螢幕上的一個點,細節才看得出來。
Claude 一開始也替每張照片算了清晰度分數。這類分數常見的算法,是看整張照片裡有多少明暗變化很快的邊緣,邊緣越多分數越高。寫這類程式教學的作者也提醒,分數要多高才算清楚,得拿你自己的照片來調(Rosebrock,2015)。
麻煩出在景深。景深是照片裡從近到遠都清楚的那段距離。光圈開大(f 後面的數字小)、用長鏡頭,景深就淺:主體清楚,背景糊成一片。糊掉的背景幾乎沒有邊緣,整張算下來分數就被拉低,主體再清楚也一樣。一篇研究人像照清晰度的論文也指出,傳統的清晰度演算法會把這種照片判成不清楚,因為對到焦的範圍比模糊的部分小很多;他們建議只評估本來該對焦的那一塊(Vysotska 等,2024)。
所以 Claude 改成把主體那一塊裁出來,放大到 100% 看。落羽松那趟的公雞是 200mm、f2.8 拍的,同一隻連拍好幾張,裁出來比,留下羽毛最清楚的那張。兩張睡蓮近拍也是同樣的設定,一樣放大看過才留下。裁的位置也要對準主體,裁到背景,看到的只會是一片糊。
讀拍攝資料,寫老實的遊記
相機每拍一張,都會把拍攝時間、相機型號、光圈、快門、焦距寫進檔案,這叫 EXIF。手機或有 GPS 的相機,還會寫進拍攝地點。
Claude 寫遊記前會先讀這些資料:
- 寫準時間。象山那趟網站上的 6 張,從 18:35 拍到 19:34。18:35 那張太陽還在 101 旁邊,遊記就寫「六點半的時候太陽還掛在 101 旁邊」;曝光最長的一張是 30 秒。其中幾張是 HDR:同一個角度拍幾張亮度不同的照片,合成一張,亮的天空和暗的街道才能同時看清楚。三層坪的資料是上午 9:31 到 11:16、瀑布一張曝 8 到 30 秒、白鷺鷥那張 1/640 秒,遊記就寫這些。
- 照拍攝順序排。網站照檔名排列,手機和相機的檔名規則不一樣。內洞那張背影是最後拍的,複製時在檔名前面加上跟相機照片一樣的前綴,讓它排在最後。
- 只寫看得到的。九寨溝那篇只寫照片和拍攝時間看得出來的事:第一天上午陰天、有雪,下午 1 點已經放晴;第二天先經過寺院,再走木棧道,最後看到鈣華池。我那天心情怎樣,它不寫。
地點和照片說明要查證
照片說明會變成網頁上每張照片的替代文字。替代文字是圖片載不出來、或用螢幕閱讀器的人會讀到的那句話,搜尋引擎也會讀。寫錯了不容易被發現,所以要對著大圖查。
- 我自己也會講錯。第二天我先說要「小烏來瀑布」那趟,後來改口,要的是內洞那趟,原本說的那趟就整個不用。
- 落羽松的照片沒有 GPS。Claude 沒有猜地點,等我給了一篇介紹新竹北埔大湖六塘的部落格文章,再對照照片:看板上的柿子吉祥物對得上,才把地點寫進去。這三趟遊記的「關於」段落都附上資料出處。
- 落羽松有一張公雞,Claude 看縮圖時寫成公雞在樹下,看了處理好的大圖才發現牠站在石頭上,改成「站在石頭上的公雞」。
- 攝影頁原本有一區「精選」,只有 4 張,單獨放著有點怪。拿去跟暗房原檔比對:一張跟九寨溝遊記裡的是同一張,一張是同一個場景,另外兩張併進九寨溝,那趟變成 14 張。
挑完之後交給程式
挑照片要我和 AI 一起判斷,後面的步驟就固定了:
| 步驟 | 做什麼 |
|---|---|
| 複製到「網站精選」 | 挑中的照片複製到該趟資料夾裡的 網站精選,只複製不搬,完稿原檔不動 |
| 遊記寫在筆記裡 | 文字是 Obsidian(一套筆記軟體)裡的一篇筆記,篇首標「網站: 發布」才會上網站;照片說明不顯示成文字,而是變成替代文字 |
| 跑一行指令 | npm run photos:照片長邊縮到 2048 像素、拿掉 GPS 和相機資料(包含相機序號)、右下角壓上 LOGO 浮水印(底下暗就用白色,亮就用墨藍)、每趟最多 16 張 |
這個指令每次整個重建,要改內容就改筆記,不改網站裡的檔案。GPS 拿掉之後,別人下載網站上的照片,也看不到拍攝位置。
想用 ChatGPT 或 Claude 自己試
聊天版的 ChatGPT、Claude 都能看圖。不用寫程式,可以照這幾步:
- 傳縮圖總覽,不要一張一張傳 300 張。Mac 的 Finder 或 Windows 的檔案總管切成大圖示,檔名就在縮圖底下,截一張圖就是縮圖總覽。一次傳一批,告訴它這是哪一趟、你想放幾張。
- 請它打星等,每張附一句理由。順便說「同一個位置連拍的,只給最好的那張高分」,重複的就會浮出來。
- 請它列出「從縮圖看不出來的事」:焦有沒有對到、有沒有路人、細節清不清楚。這張清單就是你要自己檢查的項目。
- 對焦自己放大看。高分的候選照,在電腦上放大到 100% 看主體,或把主體那一塊裁下來傳給它。背景糊掉的照片,不要只看一個清晰度分數。
- 地點不要讓它猜。照片沒有 GPS,就自己找資料給它,再一起對照照片裡的招牌、看板。
- 照片說明對著大圖寫,不要對著縮圖寫。
- 拍攝資料自己給。截圖裡沒有拍攝時間和快門這些資料,要寫準就自己抄給它。Mac 的「預覽程式」打開照片後,按工具列的「資訊」按鈕就能查看照片的相關資訊。
- 有人入鏡的照片,自己決定放不放。
參考資料
- Adrian Rosebrock,〈Blur detection with OpenCV〉,PyImageSearch,2015-09-07。https://pyimagesearch.com/2015/09/07/blur-detection-with-opencv/
- Victoria Vysotska 等,〈Research of Methods for Image Sharpness Evaluation in Photos of People〉,COLINS-2024,CEUR Workshop Proceedings 第 3664 冊,2024。https://ceur-ws.org/Vol-3664/paper18.pdf
- 寶寶溫旅行親子生活,〈新竹北埔|大湖六塘石柿餅落羽松〉,2024-01。https://bobowin.blog/p1678/
- Apple,〈在 Mac 上的「預覽程式」中檢視 PDF 和影像的相關資訊〉。https://support.apple.com/zh-tw/guide/preview/prvw9c94f0a4/mac
- 這篇提到的遊記:攝影與遊記、九寨溝與黃龍、三層坪、北埔大湖六塘落羽松、烏來內洞、象山看 101 夜景