本發(fā)明涉及圖像處理領(lǐng)域,尤其是涉及一種展示角色間的交互變化的可視化方法。
背景技術(shù):
在故事情節(jié)可視化產(chǎn)生的圖像中,每一條線代表一個(gè)實(shí)體。當(dāng)代表兩個(gè)實(shí)體的線匯集在一起時(shí),說(shuō)明這兩個(gè)實(shí)體產(chǎn)生了某種交互。同樣,當(dāng)兩條線分開(kāi)時(shí),表示兩個(gè)實(shí)體間的交互結(jié)束。
現(xiàn)有的文字作品中隨時(shí)間線的發(fā)展會(huì)出現(xiàn)很多不同的故事情節(jié)、角色和角色會(huì)話,但是由于文字作品過(guò)于枯燥,在閱讀過(guò)程中不易對(duì)該文字作品的劇情進(jìn)行時(shí)間規(guī)整和理解,造成閱讀理解上的不便,也無(wú)法準(zhǔn)確的得知故事情節(jié)中的各個(gè)角色之間的隱藏關(guān)系,現(xiàn)在也沒(méi)有一種可視化發(fā)案來(lái)解決此種問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種直觀形象、布局緊湊的展示角色間的交互變化的可視化方法。
本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
一種展示角色間的交互變化的可視化方法,用以在故事情節(jié)中產(chǎn)生可視化的角色交互關(guān)系變化的布局圖像,包括以下步驟:
1)獲取故事情節(jié)中多個(gè)交互會(huì)話的數(shù)據(jù),包括開(kāi)始時(shí)間、結(jié)束時(shí)間和包含角色;
2)根據(jù)交互會(huì)話數(shù)據(jù)和時(shí)間線結(jié)合拓?fù)浣Y(jié)構(gòu)構(gòu)建可視化故事情節(jié)布局模型;
3)根據(jù)可視化故事情節(jié)布局模型生成可視化的角色交互關(guān)系變化的布局圖像。
所述的可視化故事情節(jié)布局模型為一以時(shí)間延伸為橫軸,以交互會(huì)話插槽序號(hào)為縱軸的平面坐標(biāo)模型,在坐標(biāo)平面內(nèi)每個(gè)交互會(huì)話插槽為一隨時(shí)間延伸且具有一定寬度的區(qū)域,且相鄰交互會(huì)話插槽之間的界線即為對(duì)應(yīng)的一個(gè)交互會(huì)話。
在交互會(huì)話插槽的區(qū)域內(nèi)隨時(shí)間生成該交互會(huì)話所包含角色的角色線,當(dāng)多個(gè)角色發(fā)生會(huì)話交互時(shí),其角色線向界線相互靠近,同時(shí)在縱軸方向產(chǎn)生距離偏移。
所述的可視化故事情節(jié)布局模型的角色線排布方法為:
21)根據(jù)交互會(huì)話中的開(kāi)始時(shí)間和結(jié)束時(shí)間,在橫軸上標(biāo)記出相應(yīng)的時(shí)間點(diǎn);
22)將發(fā)生時(shí)間最早的交互會(huì)話的角色線作為初始角色線,將晚于最早交互會(huì)話之后的交互會(huì)話中的角色加入到新分組列表中,并根據(jù)與其進(jìn)行會(huì)話交互的角色之前出現(xiàn)的次數(shù)由高到低片排序;
23)在新分組列表中的角色按照交互會(huì)話的開(kāi)始時(shí)間先后,以總距離偏移最小為最優(yōu)條件,進(jìn)行角色線的添加和變更。
采用壓縮布局的方式提高可視化故事情節(jié)布局模型的空間利用率,具體方法包括:
首先將同一交互會(huì)話插槽內(nèi)被共同角色連接的交互會(huì)話集合記作一個(gè)插槽段,將交互會(huì)話分為多個(gè)插槽段,按所在交互會(huì)話插槽自下而上將上一個(gè)插槽的插槽段向下移動(dòng),直到與下方插槽段距離為最小會(huì)話間距離。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
一、直觀形象:本發(fā)明的可視化故事情節(jié)布局模型采用時(shí)間軸和角色線排布的方式來(lái)直觀形象的展示出故事情節(jié)中各個(gè)角色的會(huì)話關(guān)系,有助于讀者對(duì)故事劇情的理解以及對(duì)角色間關(guān)系和會(huì)話間關(guān)系的發(fā)掘。
二、布局緊湊:本發(fā)明采用縱軸偏移量最小為最優(yōu)對(duì)角色線進(jìn)行調(diào)整和排布,最終生成的角色交互關(guān)系變化的布局圖像結(jié)構(gòu)緊湊,便于理解。
附圖說(shuō)明
圖1為本發(fā)明的方法流程圖。
圖2為角色交互關(guān)系變化的布局圖像。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
實(shí)施例:
如圖1所示,本發(fā)明包括以下步驟:
1.數(shù)據(jù)管理
交互會(huì)話數(shù)據(jù)模型
交互會(huì)話是故事情節(jié)可視化的最基本數(shù)據(jù)單元。一個(gè)交互會(huì)話包含三個(gè)基本屬性:開(kāi)始時(shí)間、結(jié)束時(shí)間、包含角色。在最后生成的可視化故事情節(jié)中,交互會(huì)話會(huì)被表現(xiàn)為一組匯聚的平行線。其中每條線代表著包含在該交互會(huì)話中的一個(gè)角色。
從流數(shù)據(jù)中生成交互會(huì)話
輸入的流數(shù)據(jù)按時(shí)間分成了一個(gè)個(gè)包含著該時(shí)間點(diǎn)所有不同角色分組的列表。流數(shù)據(jù)按時(shí)間順序輸入。
在每個(gè)時(shí)間點(diǎn),輸入的分組將會(huì)被分為兩類:延伸分組和新分組。延伸分組指的是和前一個(gè)時(shí)間點(diǎn)中的某個(gè)分組包含完全相同的角色的分組。新分組正好相反,其角色組合并不存在于前一個(gè)時(shí)間點(diǎn)。
對(duì)于延伸分組,將會(huì)被加入前一個(gè)時(shí)間點(diǎn)中擁有相同角色的交互會(huì)話,使得該對(duì)話延伸到當(dāng)前時(shí)間點(diǎn)。而對(duì)于新分組,將會(huì)被分配給一個(gè)全新的交互會(huì)話。
2.布局構(gòu)建
該框架的第二部分任務(wù)是構(gòu)建可視化故事情節(jié)的布局。該部分分為三步:生成拓?fù)浣Y(jié)構(gòu)、角色線重排、壓縮空間。每個(gè)時(shí)間點(diǎn)重復(fù)執(zhí)行上述三步,增量地生成最終布局。
生成拓?fù)浣Y(jié)構(gòu)
生成拓?fù)浣Y(jié)構(gòu)是算法中最關(guān)鍵的部分。為了更好地描述布局的拓?fù)浣Y(jié)構(gòu),我們將布局從上到下平行地分為多個(gè)平行的插槽。只要插槽中的交互會(huì)話在時(shí)間線上不產(chǎn)生重合,每個(gè)插槽都可以容納任意大小長(zhǎng)短數(shù)量的交互會(huì)話。
在每個(gè)時(shí)間點(diǎn),遍歷該時(shí)間點(diǎn)的所有分組。將所有的延伸分組添加到前一個(gè)時(shí)間點(diǎn)相對(duì)應(yīng)得交互會(huì)話。對(duì)于新分組,將其加入新分組列表Lnew。
接下來(lái),將新分組列表Lnew中的分組按其包含角色在前一個(gè)時(shí)間點(diǎn)中出現(xiàn)的數(shù)量從小到大排序。之后,重復(fù)將列表Lnew中的最后一個(gè)分組,也就是重合度最高的分組,插入當(dāng)前的布局中。
在插入進(jìn)行前,我們首先需要插入臨時(shí)插槽,使得新分組可以被插入布局中的任意拓?fù)湮恢?。臨時(shí)插槽將會(huì)被加到現(xiàn)有插槽之間、所有插槽的最上方和最下方。
插入新分組時(shí),我們首先嘗試布局上該時(shí)間點(diǎn)上所有不與已有交互會(huì)話產(chǎn)生時(shí)間沖突的位置。在每次嘗試時(shí),記錄下插入新分組后在該時(shí)間點(diǎn)t與前一個(gè)時(shí)間點(diǎn)t-1產(chǎn)生的交叉和偏斜。找出產(chǎn)生的交叉與偏斜數(shù)量之和最小的插槽或臨時(shí)插槽,記為最佳插槽。之后將新分組對(duì)應(yīng)的交互會(huì)話插入最佳插槽,刪去其余的臨時(shí)插槽,從新分組列表Lnew中刪去該分組。
若某次循環(huán)中多個(gè)新分組擁有同樣的重合度,在找出了最后一個(gè)分組的最佳插槽后,先不將該分組插入。先遍歷擁有同樣重合度的新分組,找出它們的最佳插槽。若其中存在最佳插槽與最后一個(gè)分組相同,且產(chǎn)生的交叉和偏斜數(shù)量之和更少的新分組,將其中產(chǎn)生的交叉和偏斜數(shù)量之和最少的分組插入最佳插槽,從新分組列表Lnew中刪去該分組。
上述插入過(guò)程不斷重復(fù)直到新分組列表Lnew為空,最終產(chǎn)生的角色交互關(guān)系變化的布局圖像如圖2所示。
本發(fā)明的改進(jìn)點(diǎn)為:
第一項(xiàng)改進(jìn)是在找重合度最高的分組時(shí),將所有重合度最高的分組都取出,計(jì)算它們的最佳插槽和產(chǎn)生的交叉和偏斜數(shù)量之和。找出產(chǎn)生的交叉和偏斜數(shù)量之和最小的分組,將以其生成的交互會(huì)話插入對(duì)應(yīng)最佳插槽。將其他分組放回新分組列表Lnew。該改進(jìn)使得找應(yīng)插入分組這一步更為“貪婪”。
第二項(xiàng)改進(jìn)基于兩個(gè)發(fā)現(xiàn)。一個(gè)是每次找尋找最佳插槽時(shí)有很大可能多個(gè)插槽都能產(chǎn)生最少的交叉和偏斜,一個(gè)是在某一刻分開(kāi)的兩個(gè)角色在將來(lái)相對(duì)于和其他角色組合,有更大的可能重組?;谶@兩個(gè)發(fā)現(xiàn),將距離引入作為最佳插槽的評(píng)價(jià)標(biāo)準(zhǔn)。尋找最佳插槽時(shí)計(jì)算兩個(gè)距離值。一個(gè)是角色在前一時(shí)點(diǎn)t-1和該時(shí)間點(diǎn)t所在插槽偏離的插槽數(shù)。另一個(gè)是新加入的角色和該時(shí)間點(diǎn)t其他角色相距的插槽數(shù)。當(dāng)兩個(gè)插槽產(chǎn)生的交叉和偏斜都是最少時(shí),比較它們的距離,距離值和更小的插槽更佳。