# カスタムAIモデルをアプリケーションに統合

このセクションでは、Qualcomm SDKを使用したカスタム・モデルのデプロイで選択可能なコースについて説明します。

AIアプリケーションでカスタム・モデルを使用するには、Qualcomm Intelligent Multimedia SDKまたはQualcomm AI Runtime SDKを使用することがすることができます。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export integrate-custom-model-in-app.svg develop-own-app -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="14.2222in" height="10.6667in" viewbox="0 0 1024 768" xml:space="preserve" color-interpolation-filters="sRGB" class="st18" aria-label="../_images/integrate-custom-model-in-app.svg" svgdefaultwidth="1023"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #d2d7e1; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st3 { fill: #000000; font-family: Roboto; font-size: 1.33333em }
.svg-1 .st4 { font-size: 1em }
.svg-1 .st5 { fill: #2a2aea; stroke: #2a2aea; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st6 { fill: #ffffff; font-family: Roboto; font-size: 1.33333em }
.svg-1 .st7 { fill: #000000; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st8 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st9 { font-size: 1em; font-weight: bold }
.svg-1 .st10 { font-size: 1em; font-style: italic }
.svg-1 .st11 { stroke: #000000; stroke-width: 2 }
.svg-1 .st12 { stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st13 { marker-end: url("#mrkr4-64"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2 }
.svg-1 .st14 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.52631578947368 }
.svg-1 .st15 { fill: #000000; font-family: Symbol; font-size: 1.33333em }
.svg-1 .st16 { font-family: Roboto; font-size: 1em }
.svg-1 .st17 { font-family: Roboto; font-size: 1em; font-weight: bold }
.svg-1 .st18 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-64" class="st14" v:arrowtype="4" v:arrowsize="1" v:setback="3.8" refx="-3.8" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-1.9,-1.9) "></use>	</marker></defs><g v:mid="5" v:index="1" v:groupcontext="foregroundPage">	<title>develop-own-app</title>	<v:pageproperties v:drawingscale="0.0138889" v:pagescale="0.0138889" v:drawingunits="29" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<v:layer v:name="Connector" v:index="0"></v:layer>	<g id="shape62-1" v:mid="62" v:groupcontext="shape" transform="translate(8,-144)">		<title>Sheet.62</title>		<rect x="0" y="152" width="1008" height="616" class="st1"></rect>	</g>	<g id="shape14-3" v:mid="14" v:groupcontext="shape" transform="translate(440,-666)">		<title>Sheet.14</title>		<desc>Developer’s model</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" rx="8" ry="8" class="st2"></rect>		<text x="28.74" y="728.2" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Developer’s <v:lf></v:lf><tspan x="47.73" dy="1.2em" class="st4">model</tspan></text>		</g>	<g id="shape27-7" v:mid="27" v:groupcontext="shape" transform="translate(84,-528.644)">		<title>Sheet.27</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" rx="8" ry="8" class="st5"></rect>		<text x="45.83" y="737.8" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape28-10" v:mid="28" v:groupcontext="shape" transform="translate(322,-527.144)">		<title>Sheet.28</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" rx="8" ry="8" class="st5"></rect>		<text x="45.83" y="737.8" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape29-13" v:mid="29" v:groupcontext="shape" transform="translate(562,-528.644)">		<title>Sheet.29</title>		<desc>IMSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" rx="8" ry="8" class="st5"></rect>		<text x="45.83" y="737.8" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>IMSDK</text>		</g>	<g id="shape30-16" v:mid="30" v:groupcontext="shape" transform="translate(802,-528.644)">		<title>Sheet.30</title>		<desc>SNPE/QNN Native C/C++ application</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" rx="8" ry="8" class="st7"></rect>		<text x="5.05" y="728.2" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>SNPE/QNN Native <v:lf></v:lf><tspan x="5.96" dy="1.2em" class="st4">C/C++ application</tspan></text>		</g>	<g id="shape34-20" v:mid="34" v:groupcontext="shape" transform="translate(84,-381.572)">		<title>Sheet.34</title>		<desc>Use case supported Model supported ~15 minutes</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="698" width="140" height="140"></v:textrect>		<rect x="0" y="628" width="140" height="140" class="st8"></rect>		<text x="4" y="650" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>Use case <tspan x="4" dy="1.5em" class="st4">supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">Model supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">~15 minutes</tspan></text>		</g>	<g id="shape35-26" v:mid="35" v:groupcontext="shape" transform="translate(323,-380.572)">		<title>Sheet.35</title>		<desc>Use case supported Model NOT supported ~ 2 days*</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="698" width="140" height="140"></v:textrect>		<rect x="0" y="628" width="140" height="140" class="st8"></rect>		<text x="4" y="650" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>Use case <tspan x="4" dy="1.5em" class="st4">supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">Model </tspan><tspan class="st9">NOT </tspan><tspan x="4" dy="1.5em" class="st4">supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">~ 2 days</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape36-35" v:mid="36" v:groupcontext="shape" transform="translate(564,-384.572)">		<title>Sheet.36</title>		<desc>Use case NOT supported Model NOT supported ~ 2 weeks*</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="698" width="140" height="140"></v:textrect>		<rect x="0" y="628" width="140" height="140" class="st8"></rect>		<text x="4" y="650" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>Use case <tspan class="st9">NOT</tspan> <tspan x="4" dy="1.5em" class="st4">supported <v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">Model </tspan><tspan class="st9">NOT </tspan><tspan x="4" dy="1.5em" class="st4">supported<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.5em" class="st4">~ 2 weeks</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape37-45" v:mid="37" v:groupcontext="shape" transform="translate(802,-382.428)">		<title>Sheet.37</title>		<desc>No constraints ~ 1 week*</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="698" width="140" height="140"></v:textrect>		<rect x="0" y="628" width="140" height="140" class="st8"></rect>		<text x="4" y="650" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>No constraints <v:newlinechar></v:newlinechar><tspan x="4" dy="1.5em" class="st4">~ 1 week</tspan><tspan class="st10">*</tspan></text>		</g>	<g id="shape44-50" v:mid="44" v:groupcontext="shape" transform="translate(1280,104) rotate(90)">		<title>Sheet.44</title>		<path d="M0 768 L32.86 768" class="st11"></path>	</g>	<g id="shape46-53" v:mid="46" v:groupcontext="shape" transform="translate(509.407,904.856) rotate(180)">		<title>Sheet.46</title>		<path d="M0 768 L351.41 768" class="st12"></path>	</g>	<g id="shape47-56" v:mid="47" v:groupcontext="shape" transform="translate(509,-631.144) rotate(4.74434E-06)">		<title>Sheet.47</title>		<path d="M0 768 L364 768" class="st12"></path>	</g>	<g id="shape48-59" v:mid="48" v:groupcontext="shape" transform="translate(926,136.856) rotate(90)">		<title>Sheet.48</title>		<path d="M0 768 L23.04 768" class="st13"></path>	</g>	<g id="shape49-65" v:mid="49" v:groupcontext="shape" transform="translate(1161,136.43) rotate(90)">		<title>Sheet.49</title>		<path d="M0 768 L25.04 768" class="st13"></path>	</g>	<g id="shape50-70" v:mid="50" v:groupcontext="shape" transform="translate(1400,136.856) rotate(90)">		<title>Sheet.50</title>		<path d="M0 768 L23.04 768" class="st13"></path>	</g>	<g id="shape51-75" v:mid="51" v:groupcontext="shape" transform="translate(1641,136.856) rotate(90)">		<title>Sheet.51</title>		<path d="M0 768 L23.04 768" class="st13"></path>	</g>	<g id="shape52-80" v:mid="52" v:groupcontext="shape" transform="translate(84,-330.534)">		<title>Sheet.52</title>		<desc>Compile application, IMSDK with eSDK</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="308.5" cy="748.553" width="617.01" height="38.8938"></v:textrect>		<rect x="0" y="729.106" width="617" height="38.8938" rx="8" ry="8" class="st2"></rect>		<text x="171.95" y="753.35" class="st3" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Compile application, IMSDK with eSDK</text>		</g>	<g id="shape55-83" v:mid="55" v:groupcontext="shape" transform="translate(84,-245)">		<title>Sheet.55</title>		<desc>11 + 5 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" class="st8"></rect>		<text x="4" y="720" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>11 + 5 – AI Hub <tspan x="4" dy="1.5em" class="st4">models</tspan></text>		</g>	<g id="shape56-87" v:mid="56" v:groupcontext="shape" transform="translate(322,-245)">		<title>Sheet.56</title>		<desc>03 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" class="st8"></rect>		<text x="4" y="720" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>03 – AI Hub <tspan x="4" dy="1.5em" class="st4">models</tspan></text>		</g>	<g id="shape58-91" v:mid="58" v:groupcontext="shape" transform="translate(562,-245)">		<title>Sheet.58</title>		<desc>05 – AI Hub models</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="70" cy="733" width="140" height="70"></v:textrect>		<rect x="0" y="698" width="140" height="70" class="st8"></rect>		<text x="4" y="720" class="st3" v:langid="1033"><v:paragraph v:spline="-1.5"></v:paragraph><v:tablist></v:tablist>05 – AI Hub <tspan x="4" dy="1.5em" class="st4">models</tspan></text>		</g>	<g id="shape59-95" v:mid="59" v:groupcontext="shape" transform="translate(84,-173)">		<title>Sheet.59</title>		<desc>Developers should be able to replicate our deliverables in ~ ...</desc>		<v:textblock v:margins="rect(4,4,4,4)" v:verticalalign="0"></v:textblock>		<v:textrect cx="306" cy="736.5" width="612" height="63"></v:textrect>		<rect x="0" y="705" width="612" height="63" class="st8"></rect>		<text x="4" y="723.58" class="st15" v:langid="1033"><v:paragraph v:indentfirst="-18" v:indentleft="18" v:bullet="1"></v:paragraph><v:tablist></v:tablist><tspan class="st4" v:isbullet="true">·</tspan> <tspan class="st16">Developers should be able to replicate our deliverables in ~ 2 hours.<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.215em" class="st4" v:isbullet="true">·</tspan> <tspan class="st16">The times above are the times for developers to write a </tspan><tspan class="st17">new app of their own<v:newlinechar></v:newlinechar></tspan><tspan x="4" dy="1.215em" class="st4" v:isbullet="true">·</tspan> <tspan class="st16">Refer to Qualcomm AI Hub for the latest available models</tspan></text>		</g></g>
</svg>

**独自モデルの作成：モデルのデプロイに要する時間**

Qualcomm IM SDKを使用する

| SDKがサポートするユース・ケースは？ | SDK対応モデルは？ | 利用できるAI Hubモデルの数 | モデルをアプリケーションに統合するのに要する予想時間 |
| --- | --- | --- | --- |
| Yes | Yes | 16 | 15分 |
| Yes | いいえ | 3 | 2日 |
| いいえ | いいえ | 5 | ～2週間<br><br><br>これは上級のユース・ケースです。 |

Qualcomm AI Runtime SDK（SNPE/QNN）を使用する

| SDKがサポートするユース・ケースは？ | SDK対応モデルは？ | 利用できるAI Hubモデルの数 | モデルをアプリケーションに統合するのに要する予想時間 |
| --- | --- | --- | --- |
| 制約なし | 制約なし | 0 | ～1週間<br><br><br>これは上級のユース・ケースです。 |

注釈

中級コースと上級コースでは、[GStreamerの基礎](https://gstreamer.freedesktop.org/documentation/tutorials/index.html) の理解、[GStreamerパイプライン](https://gstreamer.freedesktop.org/documentation/gstreamer/gstpipeline.html?gi-language=c) の理解、C/C++の専門知識、[Yoctoビルド環境](https://docs.yoctoproject.org/2.1/yocto-project-qs/yocto-project-qs.html) を前提としています。

Last Published: Oct 15, 2025

[Previous Topic
開発用ソース・コードのダウンロード](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BJ/topics/download-source-code.md) [Next Topic
AI Hubモデルをアプリケーションに統合](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BJ/topics/integrate-ai-hub-models.md)