import{s as ee,o as se,n as le}from"../chunks/scheduler.9bc65507.js";import{S as ae,i as ne,g as p,s as a,r,A as pe,h as i,f as s,c as n,j as te,u as c,x as m,k as O,y as ie,a as l,v as g,d as f,t as u,w as d,m as me,n as oe}from"../chunks/index.707bf1b6.js";import{T as re}from"../chunks/Tip.c2ecdbf4.js";import{C as $}from"../chunks/CodeBlock.54a9f38d.js";import{H as Gt,E as ce}from"../chunks/EditOnGithub.922df6ba.js";function ge(tt){let o,h,w='<a href="../model_doc/dpt">DPT</a>, <a href="../model_doc/glpn">GLPN</a>';return{c(){o=me(`このチュートリアルで説明するタスクは、次のモデル アーキテクチャでサポートされています。

`),h=p("p"),h.innerHTML=w},l(M){o=oe(M,`このチュートリアルで説明するタスクは、次のモデル アーキテクチャでサポートされています。

`),h=i(M,"P",{"data-svelte-h":!0}),m(h)!=="svelte-940txo"&&(h.innerHTML=w)},m(M,y){l(M,o,y),l(M,h,y)},p:le,d(M){M&&(s(o),s(h))}}}function fe(tt){let o,h,w,M,y,et,T,Bt=`単眼奥行き推定は、シーンの奥行き情報を画像から予測することを含むコンピューター ビジョン タスクです。
単一の画像。言い換えれば、シーン内のオブジェクトの距離を距離から推定するプロセスです。
単一カメラの視点。`,st,U,Ht=`単眼奥行き推定には、3D 再構築、拡張現実、自動運転、
そしてロボット工学。モデルがオブジェクト間の複雑な関係を理解する必要があるため、これは困難な作業です。
シーンとそれに対応する深度情報（照明条件などの要因の影響を受ける可能性があります）
オクルージョンとテクスチャ。`,lt,j,at,C,It="このガイドでは、次の方法を学びます。",nt,Z,Et="<li>深度推定パイプラインを作成する</li> <li>手動で深度推定推論を実行します</li>",pt,x,Vt="始める前に、必要なライブラリがすべてインストールされていることを確認してください。",it,W,mt,k,ot,_,zt=`深度推定をサポートするモデルで推論を試す最も簡単な方法は、対応する <a href="/docs/transformers/v4.40.2/ja/main_classes/pipelines#transformers.pipeline">pipeline()</a> を使用することです。
<a href="https://huggingface.co/models?pipeline_tag=Depth-estimation&amp;sort=downloads" rel="nofollow">Hugging Face Hub のチェックポイント</a> からパイプラインをインスタンス化します。`,rt,R,ct,G,Nt="次に、分析する画像を選択します。",gt,B,ft,b,Xt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/depth-estimation-example.jpg" alt="Photo of a busy street"/>',ut,H,Qt="画像をパイプラインに渡します。",dt,I,ht,E,Ft=`パイプラインは 2 つのエントリを含む辞書を返します。最初のものは<code>predicted_ Depth</code>と呼ばれ、次の値を持つテンソルです。
深さは各ピクセルのメートル単位で表されます。
2 番目の<code>depth</code>は、深度推定結果を視覚化する PIL 画像です。`,Mt,V,Yt="視覚化された結果を見てみましょう。",yt,z,$t,J,St='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/depth-visualization.png" alt="Depth estimation visualization"/>',wt,N,jt,X,Lt="深度推定パイプラインの使用方法を理解したので、同じ結果を手動で複製する方法を見てみましょう。",bt,Q,Pt=`まず、<a href="https://huggingface.co/models?pipeline_tag=Depth-estimation&amp;sort=downloads" rel="nofollow">Hugging Face Hub のチェックポイント</a> からモデルと関連プロセッサをロードします。
ここでは、前と同じチェックポイントを使用します。`,Jt,F,vt,Y,At=`必要な画像変換を処理する<code>image_processor</code>を使用して、モデルの画像入力を準備します。
サイズ変更や正規化など:`,Tt,S,Ut,L,qt="準備された入力をモデルに渡します。",Ct,P,Zt,A,Dt="結果を視覚化します。",xt,q,Wt,v,Kt='<img src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/depth-visualization.png" alt="Depth estimation visualization"/>',kt,D,_t,K,Rt;return y=new Gt({props:{title:"Monocular depth estimation",local:"monocular-depth-estimation",headingTag:"h1"}}),j=new re({props:{$$slots:{default:[ge]},$$scope:{ctx:tt}}}),W=new $({props:{code:"cGlwJTIwaW5zdGFsbCUyMC1xJTIwdHJhbnNmb3JtZXJz",highlighted:"pip install -q transformers",wrap:!1}}),k=new Gt({props:{title:"Depth estimation pipeline",local:"depth-estimation-pipeline",headingTag:"h2"}}),R=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBY2hlY2twb2ludCUyMCUzRCUyMCUyMnZpbnZpbm8wMiUyRmdscG4tbnl1JTIyJTBBZGVwdGhfZXN0aW1hdG9yJTIwJTNEJTIwcGlwZWxpbmUoJTIyZGVwdGgtZXN0aW1hdGlvbiUyMiUyQyUyMG1vZGVsJTNEY2hlY2twb2ludCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline

<span class="hljs-meta">&gt;&gt;&gt; </span>checkpoint = <span class="hljs-string">&quot;vinvino02/glpn-nyu&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>depth_estimator = pipeline(<span class="hljs-string">&quot;depth-estimation&quot;</span>, model=checkpoint)`,wrap:!1}}),B=new $({props:{code:"ZnJvbSUyMFBJTCUyMGltcG9ydCUyMEltYWdlJTBBaW1wb3J0JTIwcmVxdWVzdHMlMEElMEF1cmwlMjAlM0QlMjAlMjJodHRwcyUzQSUyRiUyRnVuc3BsYXNoLmNvbSUyRnBob3RvcyUyRkh3QkFzU2JQQkRVJTJGZG93bmxvYWQlM0ZpeGlkJTNETW53eE1qQTNmREI4TVh4elpXRnlZMmg4TXpSOGZHTmhjaVV5TUdsdUpUSXdkR2hsSlRJd2MzUnlaV1YwZkdWdWZEQjhNSHg4ZkRFMk56ZzVNREV3T0RnJTI2Zm9yY2UlM0R0cnVlJTI2dyUzRDY0MCUyMiUwQWltYWdlJTIwJTNEJTIwSW1hZ2Uub3BlbihyZXF1ZXN0cy5nZXQodXJsJTJDJTIwc3RyZWFtJTNEVHJ1ZSkucmF3KSUwQWltYWdl",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> PIL <span class="hljs-keyword">import</span> Image
<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> requests

<span class="hljs-meta">&gt;&gt;&gt; </span>url = <span class="hljs-string">&quot;https://unsplash.com/photos/HwBAsSbPBDU/download?ixid=MnwxMjA3fDB8MXxzZWFyY2h8MzR8fGNhciUyMGluJTIwdGhlJTIwc3RyZWV0fGVufDB8MHx8fDE2Nzg5MDEwODg&amp;force=true&amp;w=640&quot;</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>image = Image.<span class="hljs-built_in">open</span>(requests.get(url, stream=<span class="hljs-literal">True</span>).raw)
<span class="hljs-meta">&gt;&gt;&gt; </span>image`,wrap:!1}}),I=new $({props:{code:"cHJlZGljdGlvbnMlMjAlM0QlMjBkZXB0aF9lc3RpbWF0b3IoaW1hZ2Up",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>predictions = depth_estimator(image)',wrap:!1}}),z=new $({props:{code:"cHJlZGljdGlvbnMlNUIlMjJkZXB0aCUyMiU1RA==",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>predictions[<span class="hljs-string">&quot;depth&quot;</span>]',wrap:!1}}),N=new Gt({props:{title:"Depth estimation inference by hand",local:"depth-estimation-inference-by-hand",headingTag:"h2"}}),F=new $({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9JbWFnZVByb2Nlc3NvciUyQyUyMEF1dG9Nb2RlbEZvckRlcHRoRXN0aW1hdGlvbiUwQSUwQWNoZWNrcG9pbnQlMjAlM0QlMjAlMjJ2aW52aW5vMDIlMkZnbHBuLW55dSUyMiUwQSUwQWltYWdlX3Byb2Nlc3NvciUyMCUzRCUyMEF1dG9JbWFnZVByb2Nlc3Nvci5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCklMEFtb2RlbCUyMCUzRCUyMEF1dG9Nb2RlbEZvckRlcHRoRXN0aW1hdGlvbi5mcm9tX3ByZXRyYWluZWQoY2hlY2twb2ludCk=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoImageProcessor, AutoModelForDepthEstimation

<span class="hljs-meta">&gt;&gt;&gt; </span>checkpoint = <span class="hljs-string">&quot;vinvino02/glpn-nyu&quot;</span>

<span class="hljs-meta">&gt;&gt;&gt; </span>image_processor = AutoImageProcessor.from_pretrained(checkpoint)
<span class="hljs-meta">&gt;&gt;&gt; </span>model = AutoModelForDepthEstimation.from_pretrained(checkpoint)`,wrap:!1}}),S=new $({props:{code:"cGl4ZWxfdmFsdWVzJTIwJTNEJTIwaW1hZ2VfcHJvY2Vzc29yKGltYWdlJTJDJTIwcmV0dXJuX3RlbnNvcnMlM0QlMjJwdCUyMikucGl4ZWxfdmFsdWVz",highlighted:'<span class="hljs-meta">&gt;&gt;&gt; </span>pixel_values = image_processor(image, return_tensors=<span class="hljs-string">&quot;pt&quot;</span>).pixel_values',wrap:!1}}),P=new $({props:{code:"aW1wb3J0JTIwdG9yY2glMEElMEF3aXRoJTIwdG9yY2gubm9fZ3JhZCgpJTNBJTBBJTIwJTIwJTIwJTIwb3V0cHV0cyUyMCUzRCUyMG1vZGVsKHBpeGVsX3ZhbHVlcyklMEElMjAlMjAlMjAlMjBwcmVkaWN0ZWRfZGVwdGglMjAlM0QlMjBvdXRwdXRzLnByZWRpY3RlZF9kZXB0aA==",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> torch

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">with</span> torch.no_grad():
<span class="hljs-meta">... </span>    outputs = model(pixel_values)
<span class="hljs-meta">... </span>    predicted_depth = outputs.predicted_depth`,wrap:!1}}),q=new $({props:{code:"aW1wb3J0JTIwbnVtcHklMjBhcyUyMG5wJTBBJTBBJTIzJTIwaW50ZXJwb2xhdGUlMjB0byUyMG9yaWdpbmFsJTIwc2l6ZSUwQXByZWRpY3Rpb24lMjAlM0QlMjB0b3JjaC5ubi5mdW5jdGlvbmFsLmludGVycG9sYXRlKCUwQSUyMCUyMCUyMCUyMHByZWRpY3RlZF9kZXB0aC51bnNxdWVlemUoMSklMkMlMEElMjAlMjAlMjAlMjBzaXplJTNEaW1hZ2Uuc2l6ZSU1QiUzQSUzQS0xJTVEJTJDJTBBJTIwJTIwJTIwJTIwbW9kZSUzRCUyMmJpY3ViaWMlMjIlMkMlMEElMjAlMjAlMjAlMjBhbGlnbl9jb3JuZXJzJTNERmFsc2UlMkMlMEEpLnNxdWVlemUoKSUwQW91dHB1dCUyMCUzRCUyMHByZWRpY3Rpb24ubnVtcHkoKSUwQSUwQWZvcm1hdHRlZCUyMCUzRCUyMChvdXRwdXQlMjAqJTIwMjU1JTIwJTJGJTIwbnAubWF4KG91dHB1dCkpLmFzdHlwZSglMjJ1aW50OCUyMiklMEFkZXB0aCUyMCUzRCUyMEltYWdlLmZyb21hcnJheShmb3JtYXR0ZWQpJTBBZGVwdGg=",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">import</span> numpy <span class="hljs-keyword">as</span> np

<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-comment"># interpolate to original size</span>
<span class="hljs-meta">&gt;&gt;&gt; </span>prediction = torch.nn.functional.interpolate(
<span class="hljs-meta">... </span>    predicted_depth.unsqueeze(<span class="hljs-number">1</span>),
<span class="hljs-meta">... </span>    size=image.size[::-<span class="hljs-number">1</span>],
<span class="hljs-meta">... </span>    mode=<span class="hljs-string">&quot;bicubic&quot;</span>,
<span class="hljs-meta">... </span>    align_corners=<span class="hljs-literal">False</span>,
<span class="hljs-meta">... </span>).squeeze()
<span class="hljs-meta">&gt;&gt;&gt; </span>output = prediction.numpy()

<span class="hljs-meta">&gt;&gt;&gt; </span>formatted = (output * <span class="hljs-number">255</span> / np.<span class="hljs-built_in">max</span>(output)).astype(<span class="hljs-string">&quot;uint8&quot;</span>)
<span class="hljs-meta">&gt;&gt;&gt; </span>depth = Image.fromarray(formatted)
<span class="hljs-meta">&gt;&gt;&gt; </span>depth`,wrap:!1}}),D=new ce({props:{source:"https://github.com/huggingface/transformers/blob/main/docs/source/ja/tasks/monocular_depth_estimation.md"}}),{c(){o=p("meta"),h=a(),w=p("p"),M=a(),r(y.$$.fragment),et=a(),T=p("p"),T.textContent=Bt,st=a(),U=p("p"),U.textContent=Ht,lt=a(),r(j.$$.fragment),at=a(),C=p("p"),C.textContent=It,nt=a(),Z=p("ul"),Z.innerHTML=Et,pt=a(),x=p("p"),x.textContent=Vt,it=a(),r(W.$$.fragment),mt=a(),r(k.$$.fragment),ot=a(),_=p("p"),_.innerHTML=zt,rt=a(),r(R.$$.fragment),ct=a(),G=p("p"),G.textContent=Nt,gt=a(),r(B.$$.fragment),ft=a(),b=p("div"),b.innerHTML=Xt,ut=a(),H=p("p"),H.textContent=Qt,dt=a(),r(I.$$.fragment),ht=a(),E=p("p"),E.innerHTML=Ft,Mt=a(),V=p("p"),V.textContent=Yt,yt=a(),r(z.$$.fragment),$t=a(),J=p("div"),J.innerHTML=St,wt=a(),r(N.$$.fragment),jt=a(),X=p("p"),X.textContent=Lt,bt=a(),Q=p("p"),Q.innerHTML=Pt,Jt=a(),r(F.$$.fragment),vt=a(),Y=p("p"),Y.innerHTML=At,Tt=a(),r(S.$$.fragment),Ut=a(),L=p("p"),L.textContent=qt,Ct=a(),r(P.$$.fragment),Zt=a(),A=p("p"),A.textContent=Dt,xt=a(),r(q.$$.fragment),Wt=a(),v=p("div"),v.innerHTML=Kt,kt=a(),r(D.$$.fragment),_t=a(),K=p("p"),this.h()},l(t){const e=pe("svelte-u9bgzb",document.head);o=i(e,"META",{name:!0,content:!0}),e.forEach(s),h=n(t),w=i(t,"P",{}),te(w).forEach(s),M=n(t),c(y.$$.fragment,t),et=n(t),T=i(t,"P",{"data-svelte-h":!0}),m(T)!=="svelte-9fs1p5"&&(T.textContent=Bt),st=n(t),U=i(t,"P",{"data-svelte-h":!0}),m(U)!=="svelte-1tgyug5"&&(U.textContent=Ht),lt=n(t),c(j.$$.fragment,t),at=n(t),C=i(t,"P",{"data-svelte-h":!0}),m(C)!=="svelte-tlz6vm"&&(C.textContent=It),nt=n(t),Z=i(t,"UL",{"data-svelte-h":!0}),m(Z)!=="svelte-1gu43po"&&(Z.innerHTML=Et),pt=n(t),x=i(t,"P",{"data-svelte-h":!0}),m(x)!=="svelte-1lya3k8"&&(x.textContent=Vt),it=n(t),c(W.$$.fragment,t),mt=n(t),c(k.$$.fragment,t),ot=n(t),_=i(t,"P",{"data-svelte-h":!0}),m(_)!=="svelte-84lfup"&&(_.innerHTML=zt),rt=n(t),c(R.$$.fragment,t),ct=n(t),G=i(t,"P",{"data-svelte-h":!0}),m(G)!=="svelte-1n3gtfx"&&(G.textContent=Nt),gt=n(t),c(B.$$.fragment,t),ft=n(t),b=i(t,"DIV",{class:!0,"data-svelte-h":!0}),m(b)!=="svelte-10bakl"&&(b.innerHTML=Xt),ut=n(t),H=i(t,"P",{"data-svelte-h":!0}),m(H)!=="svelte-vb0w5q"&&(H.textContent=Qt),dt=n(t),c(I.$$.fragment,t),ht=n(t),E=i(t,"P",{"data-svelte-h":!0}),m(E)!=="svelte-1s2udfg"&&(E.innerHTML=Ft),Mt=n(t),V=i(t,"P",{"data-svelte-h":!0}),m(V)!=="svelte-x30tw4"&&(V.textContent=Yt),yt=n(t),c(z.$$.fragment,t),$t=n(t),J=i(t,"DIV",{class:!0,"data-svelte-h":!0}),m(J)!=="svelte-43wxxb"&&(J.innerHTML=St),wt=n(t),c(N.$$.fragment,t),jt=n(t),X=i(t,"P",{"data-svelte-h":!0}),m(X)!=="svelte-1nhrkgu"&&(X.textContent=Lt),bt=n(t),Q=i(t,"P",{"data-svelte-h":!0}),m(Q)!=="svelte-1q9460k"&&(Q.innerHTML=Pt),Jt=n(t),c(F.$$.fragment,t),vt=n(t),Y=i(t,"P",{"data-svelte-h":!0}),m(Y)!=="svelte-povovq"&&(Y.innerHTML=At),Tt=n(t),c(S.$$.fragment,t),Ut=n(t),L=i(t,"P",{"data-svelte-h":!0}),m(L)!=="svelte-1u18nel"&&(L.textContent=qt),Ct=n(t),c(P.$$.fragment,t),Zt=n(t),A=i(t,"P",{"data-svelte-h":!0}),m(A)!=="svelte-8h8zfm"&&(A.textContent=Dt),xt=n(t),c(q.$$.fragment,t),Wt=n(t),v=i(t,"DIV",{class:!0,"data-svelte-h":!0}),m(v)!=="svelte-43wxxb"&&(v.innerHTML=Kt),kt=n(t),c(D.$$.fragment,t),_t=n(t),K=i(t,"P",{}),te(K).forEach(s),this.h()},h(){O(o,"name","hf:doc:metadata"),O(o,"content",ue),O(b,"class","flex justify-center"),O(J,"class","flex justify-center"),O(v,"class","flex justify-center")},m(t,e){ie(document.head,o),l(t,h,e),l(t,w,e),l(t,M,e),g(y,t,e),l(t,et,e),l(t,T,e),l(t,st,e),l(t,U,e),l(t,lt,e),g(j,t,e),l(t,at,e),l(t,C,e),l(t,nt,e),l(t,Z,e),l(t,pt,e),l(t,x,e),l(t,it,e),g(W,t,e),l(t,mt,e),g(k,t,e),l(t,ot,e),l(t,_,e),l(t,rt,e),g(R,t,e),l(t,ct,e),l(t,G,e),l(t,gt,e),g(B,t,e),l(t,ft,e),l(t,b,e),l(t,ut,e),l(t,H,e),l(t,dt,e),g(I,t,e),l(t,ht,e),l(t,E,e),l(t,Mt,e),l(t,V,e),l(t,yt,e),g(z,t,e),l(t,$t,e),l(t,J,e),l(t,wt,e),g(N,t,e),l(t,jt,e),l(t,X,e),l(t,bt,e),l(t,Q,e),l(t,Jt,e),g(F,t,e),l(t,vt,e),l(t,Y,e),l(t,Tt,e),g(S,t,e),l(t,Ut,e),l(t,L,e),l(t,Ct,e),g(P,t,e),l(t,Zt,e),l(t,A,e),l(t,xt,e),g(q,t,e),l(t,Wt,e),l(t,v,e),l(t,kt,e),g(D,t,e),l(t,_t,e),l(t,K,e),Rt=!0},p(t,[e]){const Ot={};e&2&&(Ot.$$scope={dirty:e,ctx:t}),j.$set(Ot)},i(t){Rt||(f(y.$$.fragment,t),f(j.$$.fragment,t),f(W.$$.fragment,t),f(k.$$.fragment,t),f(R.$$.fragment,t),f(B.$$.fragment,t),f(I.$$.fragment,t),f(z.$$.fragment,t),f(N.$$.fragment,t),f(F.$$.fragment,t),f(S.$$.fragment,t),f(P.$$.fragment,t),f(q.$$.fragment,t),f(D.$$.fragment,t),Rt=!0)},o(t){u(y.$$.fragment,t),u(j.$$.fragment,t),u(W.$$.fragment,t),u(k.$$.fragment,t),u(R.$$.fragment,t),u(B.$$.fragment,t),u(I.$$.fragment,t),u(z.$$.fragment,t),u(N.$$.fragment,t),u(F.$$.fragment,t),u(S.$$.fragment,t),u(P.$$.fragment,t),u(q.$$.fragment,t),u(D.$$.fragment,t),Rt=!1},d(t){t&&(s(h),s(w),s(M),s(et),s(T),s(st),s(U),s(lt),s(at),s(C),s(nt),s(Z),s(pt),s(x),s(it),s(mt),s(ot),s(_),s(rt),s(ct),s(G),s(gt),s(ft),s(b),s(ut),s(H),s(dt),s(ht),s(E),s(Mt),s(V),s(yt),s($t),s(J),s(wt),s(jt),s(X),s(bt),s(Q),s(Jt),s(vt),s(Y),s(Tt),s(Ut),s(L),s(Ct),s(Zt),s(A),s(xt),s(Wt),s(v),s(kt),s(_t),s(K)),s(o),d(y,t),d(j,t),d(W,t),d(k,t),d(R,t),d(B,t),d(I,t),d(z,t),d(N,t),d(F,t),d(S,t),d(P,t),d(q,t),d(D,t)}}}const ue='{"title":"Monocular depth estimation","local":"monocular-depth-estimation","sections":[{"title":"Depth estimation pipeline","local":"depth-estimation-pipeline","sections":[],"depth":2},{"title":"Depth estimation inference by hand","local":"depth-estimation-inference-by-hand","sections":[],"depth":2}],"depth":1}';function de(tt){return se(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class je extends ae{constructor(o){super(),ne(this,o,de,fe,ee,{})}}export{je as component};
