文/洪士薰
前言
咖啡是世界交易量第二大商品(僅次於原油),農民採收果實製作成生豆,生豆中混雜著瑕疵豆,除了賣相不好,有些瑕疵豆對人體健康有害,必需挑選出來。撿選瑕疵生豆多半是人工方式,這是一份耗時費神的工作。人工智慧是非常適合用來發展挑選瑕疵生豆的方法,以簡省人力成本。進行人工智慧的機器學習前,數據整備與前置處理是重要而且關鍵的。本文使用簡單的工具--手機、紙盒和Excel,運用高中數學中的統計、最小平方法和矩陣等知識,不需編寫程式,讓學生動手實作,直接與直覺地體驗數據分析的想法與人工智慧 。在構思解決的方案時能透過從失敗中探討原因與改進,並應用數學知識思考及解釋,將理論與實際問題結合。
咖啡瑕疵生豆及其數據分析
一、咖啡瑕疵生豆的類型
根據物理性質及成因的時間點,咖啡瑕疵生豆(好咖啡烘豆工坊,2018)的類別如下及圖1所示:
1.發酵豆--若混入咖啡中會產生腐臭味
2.死豆--風味單薄會成為異味的來源
3.未成熟豆--腥羶令人作嘔的味道
4.破碎豆、貝殼豆--容易造成烘焙不均,深度烘焙時容易著火
5.蟲蛀豆--會造成咖啡液混濁,有時會產生怪味
6.黑豆--混入黑豆煮出來的咖啡會產生腐敗味解混濁
7.可可--帶有碘味、土味,會發出類似阿摩尼亞的臭味
8.帶殼豆--造成咖啡澀味的原因

圖1.瑕疵生豆示例(圖片來源:田口護,2012,黃薇嬪譯)
瑕疵生豆的特徵大致可分成二大類別:(1)以顏色可判別的瑕疵豆,或者顏色不均且瑕疵處偏暗色,如全黑豆。(2)以形狀可判別的瑕疵豆,如破碎豆、蟲蛀豆、酸豆。
製作咖啡生豆時,最先會放在水中,發酵豆、未成熟豆、死豆會因比重低而剔除,另像可可、帶殼豆是去外皮仍未完成,因此在初步完成咖啡生豆後的瑕疵豆以圖2中由左而右的四類最常:(1)破碎豆及貝殼豆,(2) 發酵豆,(3)蟲蛀豆,和(4)發霉豆。

圖2.四種常見的咖啡瑕疵生豆
圖2是以台南市東山區咖啡農所提供常見的瑕疵生豆樣本,從平面的外觀上看,破碎豆形狀有鋸齒邊緣或者不全,與正常豆的飽滿橢圓形不同;貝殼豆會有卷曲像貝殼狀。發酵豆或未熟豆顏色會稍微偏黃;蟲蛀豆發霉豆則顏色明暗不同。因此我們擬定了以顏色差異及形狀兩種方向來挑選瑕疵生豆。接下關心的事是這兩類的影像特徵是什麼。
二、圖像原理:RGB像素值的陣列
依維基百科(2020)等文獻,圖像原理如下:
1.像素
一張圖像可以視為一堆整整齊齊的點所構成的陣列,就像把圖像分割成許多小方格,每一點方格各有「亮度」、「顏色」與「位置」稱為「像素」(pixel)。
2.解析度
圖像的長度和寬度所包含的點數稱為圖像的解析度。電腦圖像中,像素愈多,即解析度愈高,圖像就愈精細。
3.圖像色彩
圖像的品質除取決於它的解析度外也與其所使的色彩模式有關。愈高的解析度與愈多的色彩模式所需要的記憶儲存容量也愈大。我們可以用下列公式來求得:
圖像儲存所需空間=圖像高(點數)×圖像寬(點數)×像素色彩(位元組) 色彩的表示方法如下:(1)灰階(gray level):由全黑0到全白255,依明暗度分成 256 種層次。(2)全彩模式( true color):依人的視網膜中有感知紅綠藍三色的錐狀細胞,因此每一個像素色彩由三原色光 紅色、藍色、綠色組成,各占 8 個位元,每種原色各有 256種明暗度的變化,可以表現出224種顏色。
一般而言,影像檔案的資料愈豐富,影像會愈佳。但電腦就計算與儲存也變得相當龐大;此時,在影像的品質與電腦的處理能力兩方面,就必須作一個折衷的選擇。
三、咖啡瑕疵生豆影像特徵
從咖啡瑕疵生豆特徵:從「顏色不均且瑕疵處偏暗色」及「形狀捲曲或破損」兩個面向上做進一步討論:
1.咖啡豆圖像長寬比值及背景面積與咖啡豆影像面積的比
(1)以長寬比例計算正常豆為類似橢圓形(圖3a),有些貝殼豆及破碎豆會較狹長,故長寬比例會有不同(圖3a、3c)。
(2)以背景面積與破碎豆影像面積的比例估算(圖3c)

圖3. 正常豆、貝殼豆和破碎豆的影像特徵
另外,若正常豆為近似橢圓形或圓形, 橢圓形面積為
而背景(黑色長方形)面積為ab,因此咖啡豆佔基準格面積比例約在
。將橢圓換成圓形的情形亦然。
但對於破碎豆,外觀上有鋸齒邊緣或者不全,所以拍攝的影像部分在基準格中的面積應該會比
小,所以我們也把面積與背景(黑色長方形)面積的比值考慮進來。
若以一般手機或相機的都具有1080P以上解析度的全彩的照片對應成Excel的紀錄就會有 (RGB)個資料格,每格皆為0~255的數字。在處理上不但計算量大,數據分析上也較為不方便。因此是否能轉換成較低解析度的圖像呢?
考慮瑕疵生豆顏色不均且瑕疵處偏暗色時,我們發現若把解析度適當降低,「顏色不均且瑕疵處偏暗色」及「形狀捲曲或破損」的特徵都會保留下來,因此若降低解析度不但仍保留瑕疵特徵,而且可大大減少資料的處理與運算。圖4中瑕疵生豆以紅色標記了瑕疵特徵,可以發現以54×46 的解析度瑕疵特徵仍可以辨識出來。

圖4. 不同解析度下的瑕疵特徵
四、手機拍攝、像素轉換和圖像轉成Excel檔
1.裝置:手機、紙盒、黑色珍珠板
進行標準的實驗流程時,因為考量農民運用上的可行性。在拍取攝樣本時,我們並沒有以暗箱打燈的方法進行,而是製作簡單的紙盒,並以手機不修圖的方式簡單拍攝。 先在紙盒內部舖上黑色珍珠板,因應光照環境不同,我們採取的方法為使用咖啡豆紅、綠、藍像素的相對值, 並適當過濾背景方式進行。
2.拍攝流程:如圖5,並可分為下列兩大程序:

圖5.拍攝流程
程序1:拍攝照片、裁剪照片、 轉存成54X46像素
拍攝時要注意咖啡豆影像要清晰,背景要黑(因若背景夠黑就不需再去背或者進行邊緣計算直接在Excel中進行條件計算就可以濾除背景資訊)。裁剪照片時盡量切齊咖啡豆邊緣(若留下些微背景没有關係,可以在後續Excel運算中進行條件計算就可以濾除背景資訊)。最後再以修圖軟體程式轉存成54×46解析度的圖像。從圖6照片可以看到咖啡豆圖像的特徵即使在54×46像素情況下仍然保留。

圖6. 程序1完成的圖像
程序2:轉成Excel檔
搜尋PIXEL SPREADSHEET,利用網頁ThinkMath的線上程式將 54×46像素咖啡豆圖像轉換成Excel的RGB像素值矩陣。如圖7a〜7d的步驟1〜8及圖8。

a.Steps 1〜2

b.Steps 3〜4

c.Steps 5〜6

d.Steps 7〜8
圖7. 程序1的八個步驟(steps)

圖8. 咖啡豆54X46 Excel圖像示例(左)及其局部放大(右)
圖8中每一個像素有紅、綠、藍三色,因此得到 的Excel矩陣。 Excel矩陣中的數值如表1:
表1.圖8中圖像的Excel像素值

五、利用Excel進行瑕疵豆RGB像素值陣列的數據分析
將解析度 像素圖轉換成 的Excel矩陣,再分離成對應紅、綠、藍三色的 Excel數據矩陣,並運用Excel進行下列指定操作:
=AVERAGE(範圍) :計算在指定範圍的儲存格所有數值的平均。
=MEDIAN(範圍) :計算在指定範圍的儲存格所有數值的中位數。
=STDEV(範圍) :計算在指定範圍的儲存格所有數值的標準差。
=IF(條件式, 指定操作, 不滿足條件的操作):滿足及不滿足條件式的儲存格進行相應指定計算。
=COUNTIF(範圍, 條件式):計算在指定範圍中,滿足條件式的儲存格數。
1.去背景:利用IF函數,將紅綠藍色像素低於15以下去除,因此對應的儲存格數值就會呈現為FALSE,以此方法即可將背景值去掉,而不需進行費時的去背程序或者邊緣計算。但若背景明暗值較高會不易與咖啡豆區分,所以拍攝時放在盒內且墊上黑色珍珠板,就是希望降低背景明暗值用以和咖啡豆的像素值做一區分。
2.豆徑長寬比:利用COUNTIF計算,每一張咖啡豆的圖像邊緣,因拍攝背景是黑色珍珠板,所以若一行中每一格都是偏暗的數值時,我們就把該行視為背景的影像,每一列也是如此。但因為光線會散射,考慮到可能的誤差,我們設定當同一行(或列)中像素值數字大於15的儲存格數量小於或等於5格時,即表示此行(列)基本上是背景圖像。所有非背景的列數為長值,非背景的行數為寬值。計算長與寬的比值即為長寬比。
3.面積比:利用COUNTIF計算去背景的像素元數量與有像素的列數乘行數的比值。因為破碎豆形狀的缺損造成咖啡豆圖像的內凹,而不是完整橢圓,面積比應會較小。
4. 去背景像素元的平均值、標準差。 瑕疵生豆顏色不均且瑕疵處偏暗色「顏色不均且瑕疵處偏暗色」的特徵應可以從平均值、標準差及其他差異值判讀
5. 去背景的像素元,依0~255分成16等分並統計其數量。瑕疵生豆顏色不均且瑕疵處偏暗色「顏色不均且瑕疵處偏暗色」的特徵應會使16等份的暗部分佈與正常豆不同。
一個瑕疵是紅色像素轉成Excel陣列的示例(瑕疵豆的部份圖形),(1)低於15視為背景去除。(2)依像素值0~255分成16等分。可得像素明暗長條圖的分布情形。(3)計算長條圖時我們採取COUNTIF的基本運算,避免使用Excel進階功能。希望在計算量及移植到其他微系統時也不會有問題。 (4) 紅/R、綠/G、藍/B三色,進行相同處理方式。
在前述程序2中咖啡豆圖像轉換的Excel針對R(紅色)的16等像素明暗長條圖如圖9

圖9. 咖啡豆Excel紅色像素值16等分分布圖
最後把一顆咖啡豆的圖像資料統計結果列出來,如表2。
表2. 單一咖啡豆的影像數據特徵

結果及討論
區分正常豆與瑕疵豆的顏色變異時,瑕疵豆的顏色變異相對較大。但隨著拍攝環境和器材以及不同瑕疵豆間的變異,因此不是由單一統計值即可做為瑕疵豆的辨別標準,這也是人工智慧方案可以發揮的地方。通過適當的資料特徵淬取:像素的平均值、標準差、16等分分布,同時進行考慮,才能讓之後的機器學習有效用。這些特徵淬取就是人工智慧中機器學習的基礎。底下我們先逐一分開討論瑕疵豆的特徵數據,這些數據並非單用一種就能成功,通常需要好幾種特徵複合考慮才能使瑕疵豆的挑選變成可能。
一、部份咖啡豆像素矩陣RGB值的標準差可以區分瑕疵豆與正常豆
有些瑕疵咖啡豆圖像可以從像素值的標準差來區別,為什麼標準差是進行機器學習時會選擇的資料特徵? 若以黑色為背景拍攝,而瑕疵處或邊緣破損處都偏暗(RGB都低)或不均勻,相對於G和B值,R值的標準差會是很好鑑別良窳的方式。我們舉幾個良好豆和瑕疵豆的例子來說明觀察,並以
分別表示R, G, B值的標準差。圖10~13提供一些示例。
1.良好豆#1:


圖10.良好豆#1(左)及R、B值熱圖(中、右)
2.良好豆#2:


圖11.良好豆#2(左)及R、B值熱圖(中、右)
3.蟲蛀豆:


圖12.蟲蛀豆(左)及R、B值熱圖(中、右)
4. 破損蟲蛀豆:


圖13.破損蟲蛀豆(左)及R、B值熱圖(中、右)
從圖10~13的
比較,可知像蟲蛀豆這樣瑕疵區域極小的類型,以G、B色值也有類似的情形,但效果不一,但瑕疵的方式很多樣,標準差只是我們選用的特徵之一。若要更完整有效地挑選勢必需考慮像素的統計量特徵。
二、顏色有瑕疵的咖啡豆其R、G、B的色階分布與正常豆不同
不論R、G或B值有顏色上之瑕疵特徵的瑕疵豆在暗部(圖14~15,圖15為第6~7等)會有明顯較多的分布,由於拍攝條件(如快門、ISO)、圖形邊界界定、殘留銀皮容易反光以致整體偏亮等都會影響像素的統計量,我們共採取R值的以下統計量:標準差
、平均數
與16等第數值。

圖14. 咖啡豆轉換RGB像素值

圖15. 咖啡瑕疵豆Excel檔數據分析結果

圖16. 咖啡好豆Excel檔數據分析結果
三、透過咖啡豆圖像RGB數值的平均、標準差與16等第分布進行人工智慧方案
若如表2將每顆咖啡的圖像資料整合成可以進一步進行人工智慧方案,則事實上我們已進行了人工智慧方案(決策樹、SVM),在超過100顆隨機挑選的樣本,進行上述的資料收集所進行的人工智慧方案得到的結果有80%以上的精確率(全部豆中正確挑出瑕疵豆的比率)與78%以上的召回率(實際結果中正確預測出瑕疵豆的比率)。
結論
一、選擇咖啡豆圖像的解析度為
是因一些嘗試而決定
1.我們觀察了一些不同的咖啡豆樣本,發現雖然很多咖啡豆是橢長形,但有一些是接近圖形,所以我們嘗試了一些不同的解析度長寬比值,最後定在
接近1的數值,其他接近的比值應該也是可行。
2.嘗試了更低解析度,例如28×26。
3.當圖像有旋轉情形時就適當旋轉圖像以收集數據,但即使不重新轉回54×46的長方形,因為濾除背景值後,所收集的像素平均、標準差及16等第分布也不會受影響。
4.咖啡豆任一面都可以進行圖素數值分析,雖然有少部份咖啡豆只有一面有瑕疵情形,只要翻到有瑕疵一面進行拍攝取樣即可,跟肉眼看不見時則需翻動咖啡豆進行查驗相同。
二、由實務問題開始的方案動機較強烈,而這樣的PBL式的課程設計可以自然地融入各學科領域,不用特意再去強調跨領域,因為真實的問題多半是不分領域的。
三、資料處理的本質是如何有系統地收集有用或可用的資料。由瑕疵豆的特徵觀察,經由對圖像原理的理解,將咖啡瑕疵豆特徵轉化成Excel的數值資訊,再結合高中數學的統計知識,就形成了有效的機器學習方案的前置數據處理。在人工智慧的進行過程中,數據的前置分析及處理是關鍵的步驟,本文正好是個範例。
四、瑕疵豆圖像數據實作一方面深化Excel的學習,在實例中真正體驗數學、統計的知識如何使用。本文內容普遍適用於全體高一學生,是學習的起點。而且應該可以發展成普及高中生的學習課程。 對於資訊或程式設計有興趣的學生可以去選修適合自己的課程,例如程式設計、人工智慧、數學建模。
五、在教育部中小學深耕計畫的經費支持下,我們開設多元選修課程「人工智慧咖啡GO」,時間為一學期18週,每週2小時。架構上是由5到6個不同的模組課程組成。在2018學年度下學期到2019學年度上學期,實施了二學期,對象分別高一及高三學生。其中的一個模組課程「咖啡豆的測量」,轉變為2019年上學期,對高一6個班級實施的校訂必修課程,共6週,每週2小時。以手機拍攝,轉成Excel,進行咖啡瑕疵生豆的影像數據分析,以形成人工智慧方案的數據分析之基礎。針對課程成立Facebook的社團。「咖啡GO」。 所有上課及課程檔案均公開在網路上分享。