| 揚聲器 |
抄本 |
| 海蒂哈德納 |
您好,我是海蒂哈德納 (Heidi Hardner),來自明尼蘇達州明尼阿波利斯。 |
| 塞爾凱·奧爾梅茲 |
我是 Serkay Olmez,從科羅拉多州朗蒙特撥打電話。 |
| 海蒂哈德納 |
我們在希捷科技公司工作,我們兩個都長期使用 JMP 和 JSL,並與同事分享 JMP 腳本。我們將示範 JMP 資料表中 ??? 影像的一些用例,並分享一些相關的 JSL 工具。 |
| |
在希捷,記錄磁頭要經過大量的工廠工序,從晶圓製造到驅動器的安裝。 |
| |
因此,我們經常查看非常廣泛的數據,其中每個頭都是一行,並且有很多列。 |
| |
由於許多過程產生的圖像可能包含每個頭部的許多不同圖像,或者我們可能從經過單一過程的許多頭部獲得非常高的數據,在計量圖像中看起來非常相似。 |
| |
我們今天下載的資料集不是 Seagate 圖像,但它們與這些情況有相似之處,我希望這些相似之處可以幫助您與自己的用例進行比較。 |
| |
JMP 已經好幾年的圖像和資料表了,但我個人卻不太欣賞它。 |
| |
我希望您能夠在這些用例中看到它的價值,特別是透過圖像與其他資料的靈活互動連接。 |
| |
我還想強調在表中儲存圖像路徑的價值,特別是如果您可以共享路徑。 |
| |
最後,我們都會分享將在輔助材料中示範的 JSL。所以,這才是真正的要點。這份 PowerPoint 的最後有目錄。 |
| |
對圖像有用的大部分探索都是非常基礎的,我們的腳本無需 JSL 知識即可使用,但它們也包含您可以在自己的 JMP 腳本中建立的各種內容。 |
| |
包括可公開訪問的圖像路徑在內的三件事是我的第二個收穫。 |
| |
第一個是來自大都會博物館線上目錄的數據表。它包含資料表中每個物件或行包含多個影像的範例。 |
| |
瀏覽星表對我來說就像一個巨大的兔子洞,我強烈推薦。第二個資料集是天文圖像。感謝科學棚天文台的Russ Durkee。 |
| |
這是每行圖像的計量數據,乍一看,這些圖像彼此非常相似。所以請注意,這與我剛才提到的錄音頭工廠資料用例的相似之處。 |
| |
說到我遇到的難題,第三件事是實作 Omeka API 的 JSL |
| |
造訪線上學術館藏。感謝 Heather Shirey 博士幫助我存取這些資料庫。她的城市藝術地圖計畫也很有趣,值得一看。 |
| |
但這裡的技術要點是,任何人都可以使用此程式碼來體驗查詢資料庫並獲取將圖像路徑與其他資料混合的結果,以製作我們的工具所圍繞的那種表格。 |
| |
那麼,我們接下來要開始 JMP 的現場演示。在討論這類資料集之前,先想一下,如果你只有一堆影像怎麼辦? |
| |
資料夾中的圖片表。這個功能的作用是讓我們選擇一個資料夾。我有一個資料夾,裡面有一些來自 |
| |
Met 目錄資料。你可以看到它包含一些資料夾,當我選擇這個資料夾時,我很快就得到了一個表格,其中包含 |
| |
在列中,所有這些標籤都指向圖像。它會深入挖掘它認為是圖像的檔案副檔名,並拆分出一些資料夾用於 |
| |
子資料夾作為資料中的屬性。現在我們經常遇到這樣的情況:資料夾名稱中包含了某種有意義的屬性,我們希望這些資料具有這種屬性。 |
| |
這是一個您可以在我的 Seagate 版本中進一步自訂的腳本,通常我在檔案名稱中嵌入了一個頭標識符,因此我可以對該腳本進行解析,該解析會自動內建到我個人版本的腳本中。 |
| |
讓我們快速看一下我們的主要範例資料集之一。這就是我提到的博物館數據。它更有意義,你可以看到它有 |
| |
每個物件都有一行,但其中包含一些數值資料。對,它列出了所有物件。它包含一堆屬性資料。所以有很多… |
| |
這裡有一個更豐富的數據集。但如果我們捲動一下,你會看到資料集裡面是圖片的路徑,也就是圖片所在的 URL。 |
| |
託管,您可以看到這裡的某些行最多有五張不同的圖像。 |
| |
因此,我的第二個工具“圖像表重要圖像”實際上是將圖像導入表格,它可以容納多個路徑。這些路徑也可以是本機路徑,不一定是 URL。 |
| |
一旦這些演示資料共享完畢,你就可以去獲取…已經完成了。我想快速說一下…快速講一下它在幕後做了什麼。 |
| |
當 JMP 打開它識別的圖像時,它可以是一個圖像物件。影像物件可以接收許多 JSL 命令訊息,例如獲取大小、獲取像素、保存影像等。您可以在我們分享的程式碼中看到這些命令。 |
| |
開始吧,我想看看結果…把圖片拖進表格裡。除了貼上圖片之外,這個腳本還做了一些其他的事情。 |
| |
是的……讓我再舉個例子,看看其他一些程式碼片段。圖像放在一個表達式類型的列裡,所以它創建了一個表達式資料類型,用來存放圖像。 |
| |
我還為該列建立了事件處理程序。它使用一個特殊的訊息來通知圖形框,將圖像添加到圖像對象,並直接添加到圖形框中。我會向你演示它的作用,但它是…點擊事件處理程序。 |
| |
而且它的尺寸也在調整,所以事實上它變高了,以適應稍大一點的東西。 |
| |
這是你可以做的,我的腳本可以做到這一點,但默認情況下,你知道,如果你把圖像放進去,你可能會得到像這樣非常小的東西,這可能很酷 |
| |
用於查看大型陣列,但也許值得知道的是,您知道,這似乎就像,我不知道如何才能看到我的圖像在 JMP 中變得如此之小,您也可以手動將它們加寬。 |
| |
腳本也會嵌入表格中。知道如何操作很有用,這裡的邏輯是, |
| |
當我們嵌入所有這些圖像時,數據表變得非常大,並且嵌入了完整的圖像 |
| |
發生這種情況時,嵌入的完整圖像的資料會被刪除。所以我可能會想把這組資料集發送給其他人,讓他們可以直接獲取,而無需了解我的特殊工具選單。他們可以運行這個工具重新導入圖像。 |
| |
在“單擊”中,我想展示的是當您單擊此處時,它會生成一個全尺寸或更大版本的圖像供您查看。 |
| |
所以就像我說的,資料表中包含影像的許多好處其實都體現在 JMP 的簡單探索功能上。例如,我可以取出這些列,然後重新排序。 |
| |
只需將它們移到其他位置,查看整個檔案大小表就會更有趣。 |
| |
這樣,我就可以瀏覽,可以排序,可以在這裡看到按數量對圖像進行排序,或者按有效圖像數量對行進行排序。 |
| |
如果我向下滾動,就能直觀地看到,透過重新排列,我可以在旁邊看到不同的興趣列。實際上,我可以在網格中看到很多圖像。 |
| |
在桌子上。這裡,我有一個分組,並建立了我自己的分組列。這樣我就可以重新排列它。只要重新排列列,我就可以把它貼在圖片旁邊。 |
| |
方便我滾動查看。所以,移動、排序和重新排列圖片也是將圖片放在一個 |
| |
表格。我的個人用例之一是監控來自圖像的一些重要指標,在我的例子中,這些指標實際上來自不同圖像的組合。 |
| |
我會查看這些數據或尋找數據中反覆出現的異常值和可疑模式。 |
| |
在這個用例中,我不會有 85 個,而是有數萬行正在查看的數據,而圖像將成為探索數據問題的有用部分。 |
| |
我先畫個範例圖,就像這樣…在這個例子中,這些博物館收藏的高度乘以寬度。我快速返回,示範你可以做的事情。右鍵單擊此處,我可以用第一列建立一個標籤。 |
| |
所以,如果我查看數據,我可以檢查一下,發現有東西突出來了。為什麼它的寬度比高度大得多?嗯,這不是錯誤。它真的是一個寬的 |
| |
那裡有藝術品,所以這很合理。這樣我就能彈出一個事實。如果我有很多不同的東西都夾在下面這個集群裡,看起來好像有很多 |
| |
這些體型相似的傢伙,也許看起來很有趣。 |
| |
再說一次,我可以,我可以用標籤單獨查看它們。但如果我的數據真的很大,我可以做其他探索性的事情。我可以回到數據,用 F7 鍵翻頁 |
| |
對於已選定的事物。當然,有了選定的事物,我可以對其中一些進行子集化,這樣就能得到 |
| |
只是一個較小的數據集。我想展示的一個探索性的東西,也是我最喜歡的東西之一,是在行選擇下。 |
| |
我可以進行名稱選擇和列操作。所以說這是一種奇怪的模式,而且我已經知道我想稱之為“怪胎”,這樣做。 |
| |
我會說,嘿,這些數據裡面有一些異常,我想去檢查一下。它會在最後給我一列,用1和0來表示這些異常是否是異常。 |
| |
它的部分用處在於,假設我的資料集非常大,那麼就只能分頁瀏覽。不太好。 |
| |
假設它太大了,我不想把圖片放進去。我不想把它們拖進去,這不切實際。所以我又回到了我的數據集。 |
| |
我對這些奇怪的數據很感興趣。我可以進入子集,而不是僅僅對它們全部進行子集化,比如說,這個組中可能有數千個數據,我可以使用該列進行分層。 |
| |
所以這裡我可以說,例如,我只選了 11 個,假設我要選 5 個。我要選擇對異常值進行分層。 |
| |
我會得到五個“奇數”和五個“非奇數”,隨機選擇。你知道,我可以對它們進行排序,然後把圖片帶回來。所以現在我可以說,好吧,我只是想看看, |
| |
也許我只想看到一和二,不管怎樣,只針對小集合。所以,再次強調,希望這能說明,即使是非常大的數據,沿著這些路徑拖曳似乎也沒什麼用。 |
| |
如果有圖片,或是你知道可以把圖片放進去,我可以…他們會得到一個子集。然後我可以瀏覽這些圖片,看看這些奇怪的圖片有什麼不同。我可以把它們整理出來。 |
| |
現在我想展示另一個用例。 |
| |
這個用例是我學習對圖像進行一些深度學習分類,所以 |
| |
在這種情況下,您知道...在這種情況下,我真正強烈地意識到圖像實際上是數據。 |
| |
這裡有一個例子。當然,就我而言,我查看的記錄有不同的觀點。我試著對這些不同的觀點進行分類。 |
| |
感覺對了? ? ?還有一些其他的東西,重點放在頭部的不同部位。所以在這裡,我用藝術數據中的貓雕像來模擬,並將它們分類。這是背面的、面向右側的、面向前方的等等。 |
| |
你知道,這個,這個,整個機器學習計畫並沒有在 JMP 中進行,但那裡有需求 |
| |
為這個 Python TensorFlow 分類產品提供訓練資料。最後,查看返回的結果,你會發現,它最終會以資料夾中嵌套檔案的形式呈現。所以,讓我快速展示一下我們的另一個工具。這張圖片 |
| |
好了。圖像表。這些工具。 |
| |
兩個資料夾,這裡是...我可以挑選圖像。 |
| |
這些是資料表中的路徑或圖像,我可以選擇一些屬性列並將它們轉換成 |
| |
嵌套資料夾類別的資料夾。在這裡,我將告訴它使用我的文件名列作為名稱。 |
| |
我通常都可以添加一些前綴或更改大小。調整大小是機器學習的另一個重要功能。我已經設定了模型,它肯定會上傳特定大小的圖像。然後,當它運行時,它會發送我的圖像 |
| |
進入資料夾。 |
| |
這裡出了問題。 |
| |
我再做一次。圖片……圖片表到資料夾。 |
| |
我覺得我點錯了。這裡有我的機器學習圖片資料夾,我想快速把這些圖片放進去。 |
| |
修改一下。 |
| |
點選檔案名稱。 |
| |
它會將它們排列在資料夾中。 |
| |
這裡有我的測試資料集和訓練資料集,哎呀,我選錯了類別。讓我們根據我在列中選擇的內容對它們進行分類。 |
| |
所以這裡的想法是,你知道,我需要把我的分類資料放入資料夾結構中。 |
| |
關於這一點的另一件事是,它在數據中很有用...在 JMP 的數據表中執行此操作,因此提出這些類別培訓很有用。 |
| |
JMP 中的群組。我已經展示了我們可以進行分層,這裡還有另一個例子,因為我有數據,其他數據列,例如部門,在 |
| |
在數據集裡。我可以回頭看看,例如,我是不是均衡地分割了測試集和訓練集?所以,比如說,當我處理埃及藝術時,我在埃及藝術方面做得很好。 |
| |
一部分用於任務,一部分用於訓練,其他類別的資料不多。所以在JMP中,我知道我擁有其他數據。 |
| |
列。它們很方便地組成我的測試訓練集,確保我有平衡的組,而且我還可以保存這個表並記錄其中的內容… |
| |
我參加的培訓內容是這樣的。最後我想說的是,博物館的數據並沒有很好地捕捉到 |
| |
計量影像看起來都很相似。因為這些貓都很獨特,你可能需要仔細觀察才能發現, |
| |
你知道,這是貓咪的背面還是臉被磨掉的正面,或是其他什麼, |
| |
我會進一步討論計量影像彼此非常相似的情況。用肉眼瀏覽這些圖像可能非常有用。我們先聽聽 Serkay 如何使用他的 PowerPoint 工具示範。 |
| 塞爾凱·奧爾梅茲 |
好的,那麼讓我分享我的螢幕。 |
| |
好吧。 |
| |
因此,我將要討論的是一個腳本,它使人們能夠將 JMP 表中列出的圖像推送到 PowerPoint 中。 |
| |
所以你要做的是收集表格中列出的連結中的圖片,並使用你選擇的範本將它們推送到 PowerPoint 中。你可以使用 |
| |
Heidi 已經展示了程式碼片段,並且該腳本假設您已經有一個表格並且其中有連結。 |
| |
我將運行該腳本並告訴您該腳本的作用。 |
| |
如果我運行這個程序,它會給你一個介面,你可以在其中選擇列作為屬性。首先,你需要選擇影像路徑,這樣 JMP 才能知道從哪裡收集這些影像, |
| |
你也可以加上標籤。這些標籤會以列的形式出現在 PowerPoint 中,你也可以決定 PowerPoint 中的版面類型。所以我只顯示一個網格 |
| |
首先佈局。所以在這種情況下會有四列兩行。然後點選匯出。它會觸發 PowerPoint,然後 PowerPoint 會 |
| |
去收集這些圖像,它將建立幻燈片,這將需要 10 到 20 秒,因為它從伺服器中提取 20 張圖像。 |
| |
一旦完成,您將獲得一個佈局良好的 PowerPoint。記住,這些列就是您在 UI 中一開始選擇的列,表格就是從這些列產生的。所以您可以快速獲得這個,當然,您也可以更改 |
| |
佈局在這裡。例如,假設你想做 |
| |
不一樣。這裡有一個佈局選擇。假設你想做一行,並在下方留一些空間,這樣你就可以在那裡添加一些註釋。所以你可以重新運行這個 |
| |
然後 JMP 會告訴 PowerPoint 如何設定佈局。完成後,每張幻燈片都會有一行圖像。 |
| |
看起來像這樣 |
| |
該腳本的另一項功能是將幻燈片按類別拆分。或者,也許你的資料中有一個頂級屬性,你想開始…你想開始一張新的幻燈片 |
| |
當該屬性發生變化時。例如,假設你把這個媒體放入投影片標籤中,它就會在頂部建立投影片標籤。就像標題一樣。 |
| |
它還將這個小型 PowerPoint 簡報分成了不同的類別。因此,每次這個「媒介」屬性發生變化時,它都會開始一張新的投影片。如果我這樣做, |
| |
它會在 10-20 秒內再次執行相同的操作。現在,它會將它們分組到不同的類別中。這樣,你就會有一個很好的佈局 |
| |
一組幻燈片, |
| |
哪些會被拆分。例如,你有一個中等等於黃銅的幻燈片,你會有一個青銅的幻燈片,而且似乎只有一個項目。我在數據中選擇了???行,將會有陶瓷等等。這樣就把幻燈片分開了。 |
| |
最後,我要示範的是,有時人們會想要更複雜的佈局。例如,在模板中,他們可能希望看到一張圖片 |
| |
尺寸更大,所以他們想在左邊放一張大圖,或是在右邊放幾張。所以你可以做這麼複雜的模板 |
| |
透過選擇不同的佈局,這些都由腳本完成。所以我有一個從大到小的佈局。左側會有一張大圖像,右側會堆疊兩個小圖像。所以,如果你只是這樣做 |
| |
它會做同樣的事情,但現在佈局不同了。 |
| |
我會花 10 到 20 秒的時間來製作幻燈片。 |
| |
好了。左邊是一張大圖,右邊是兩張小圖。 |
| |
最後我要展示的是如何自訂這個工具。我們將把這個工具作為這個大型插件的一部分發布,這個插件可以完成所有圖像處理工作。如果我快速打開這個插件, |
| |
這是用戶可自訂的,用戶可以進入並更改他們想要自動放入角色的列類型。 |
| |
使用者可以自己設計不同的外觀。最後我要提一下專門的模板。這些模板 |
| |
我剛剛展示了一個從大到小的版本,它們是由工具外部的腳本創建的。所以我們會提供兩個版本。但這個想法是,如果使用者經驗夠豐富,他們可以開發 |
| |
他或她自己的模板並將其放入工具中,該工具就會識別它,或者開發人員可以開發越來越多的模板 |
| |
指定…特定於特定客戶或特定使用者。所以,這將是我們即將發布的插件的一部分。這就是我所有的了。海蒂可以收回它。 |
| 海蒂哈德納 |
好的,好的。 |
| |
抱歉。我回來了 |
| |
現在我們來看看不同的資料集。這些是來自“科學棚”的天文圖像。 |
| |
正如廣告所說,這些圖像更……它們是計量圖像,你看到的是這張非常小的圖像中的一小片夜空。即使在這種非常小的尺寸和範圍的圖像中, |
| |
你可以看到,你可以看到那裡有動靜。你可以看到一些異常的東西,就像這裡突然冒出來的東西一樣。 |
| |
這正是我在機器學習專案中進行分類時想要表達的觀點之一,我有一些名義上看起來非常非常相似的圖像。滾動瀏覽並發現像這樣的異常情況非常容易。 |
| |
但我實際上會做一個更直觀的演示,我們會把它放大,然後再滾動瀏覽一遍。所以,讓我快速地 |
| |
描述我們將要看到的內容。這是這些影像上白色強度隨時間變化的視圖。當我們滾動瀏覽它們時,它們是按時間排序的。 |
| |
但有一件事你不會看到,用肉眼很難看出來,那就是強度的這種巨大而緩慢的趨勢。 |
| |
我們會貼上標籤。你在這裡可以再次看到,你用標籤來觀察。是的,強度是否很高。這是因為60秒曝光的影像中出現了一條條紋,是一些經過的東西。我們也可以透過數據中的凸起來看到。這就是你看到的 |
| |
望遠鏡漂移了,背景稍微移動了一下,然後又重新設定了,我們滾動瀏覽的時候可以看到。所以這只是一個小小的預覽。 |
| |
我將展示如何將其擴大,以便即使在數據表內部,我們也可以看到相當大的圖像視圖,只是稍微大一點。 |
| |
從時間的起點開始。我希望你們在滾動資料時觀察這個點,觀察那個物體。 |
| |
希望你們能看到,我們看到它在背景星空的背景下向左移動。那是一顆小行星,編號2171基輔。 |
| |
也就是說,我們看到的是這些計量影像的真正意圖。所以我們只是用圖形演示了一下,在適當的情況下,只需在表格中滾動瀏覽圖像即可。 |
| |
圖像表註釋。這適用於相反的情況,即你實際上只是想逐一檢查圖像。 |
| |
當您單擊此處時,您可以再次選擇使用路徑或嵌入的圖像。 |
| |
你可以選擇使用某種標識符,我們把日期放在這裡,或者它只給你一個行號,你可以有另一個屬性,讓我們把望遠鏡放在這裡, |
| |
數據。它的作用是形成一個小的標記工具,這個工具可以讓你 |
| |
做一些通用的分類。這個是三,可以在這裡說點什麼。對數據進行一些評論。 |
| |
我還有十字線,所以我可以測量。它會測量影像上的像素,並移動十字線來記錄位置和 |
| |
當我點擊“記錄”時,那裡的增量和像素。現在,在我們開始之前,你知道,部分原因是有很多不同的方法可以標記商業廣告 |
| |
工具,在 JMP 中執行此操作的部分動機是,您除了圖像之外,還擁有表格中的所有其他資料。 |
| |
它實際上只是用這一列來表示。不過,這部分內容已經可以自訂了。在我的小版本中,我正在查看圖像 |
| |
我正在這個視圖中列印一張小地圖,上面標明了磁頭在晶圓上的位置,或其他一些資料。或者,圖像配方中可能標明了尺寸,我可以嘗試驗證一下。 |
| |
那麼,在影像和專案之間建立這種連結功能,是否真的可以實現呢?但是,當我們點擊「記錄」時,會出現一個畫面,我們會看到它們在右側新增列,然後 |
| |
(這些柱子太高了,讓我們把它們縮小一點。) |
| |
您可以在第三行看到並記錄下來。不,我不想移動白色十字線,這樣我就能得到垂直距離,十字線的位置以及我的評論和分類,它們都會固定在表格的正確行中。 |
| |
我們在這裡看到的另一件事是另一列圖像。我在這裡放了一些 JMP 圖,JMP 圖可以是影像。 |
| |
在我們共享的資料表中,我嵌入了程式碼。你會看到,它生成了這些圖像,並涉及使用獲取像素訊息來獲取我們已有的圖像。 |
| |
取得一個資料矩陣,沿著小行星運動的方向切出一個切片,然後計算平均強度。你可以翻閱並查看 |
| |
這些圖像中的山峰在移動。但真正的重點是我剛才提到的。 |
| |
在 Seagate 的一些用例中,我們會記錄磁頭的一行數據,其中包含哪些值,例如來自整個頻譜的峰值頻率或來自最佳化掃描的最佳值等。 |
| |
這些掃描實際上可以轉換為資料中的影像。當然,我們對圖像或複雜曲線進行這種特徵提取是有充分理由的。 |
| |
頻率等簡單值可以更直接地用於 JMP 的各種分析中,例如 |
| |
JMP 的統計平台,但我希望我們都證明了,如果將圖像放入與一堆其他資料列相關的表中,您還可以做很多有用的事情。 |
| |
具體來說,你知道,我希望也許將情節視為圖像,你會立即回想起 Serkay 的 PowerPoint 演示,情節就像是以某種方式在 PowerPoint 中排列的東西。 |
| |
無論如何,希望我們分享的這些 JSL 知識能對你有所幫助,並激勵你更好地利用圖像。謝謝。 |